Как получить данные из API и сохранить их для повторного использования в другом API - PullRequest
0 голосов
/ 16 января 2019

У меня есть ситуация, когда мой контент зависит от данных, предоставленных API-интерфейсом, который обычно дает сбой.

Я создал php-прокси для преобразования некоторых из этих данных в конечные точки внешнего интерфейса, но я хотел бы создать что-то лучшее в python.

Я получил некоторый приличный опыт в создании успокоительного API в колбе, и я знаю, как подключиться к соответствующему API.

То, что я хотел бы сделать, - это создать базу данных, в которой хранятся данные из этого API-интерфейса и обновляются по расписанию, чтобы сканировать API-интерфейс или даже прослушивать изменения.

Если бы я мог получить какое-то направление в создании базы данных peewee из этих данных API, я бы смог справиться с остальными. Моя проблема в том, что я не уверен, что делать с данными после их получения. Я играл с дампами и загрузками из модуля json, и я могу получить доступ к данным по индексу.

код ниже, я беру номера сущностей из API и строю список. Это не достаточно постоянно.

также эта строка:

json.loads(r.content.decode("utf-8"), object_hook=lambda d: namedtuple('X', d.keys())(*d.values()))

добавляет 'X' к случайным значениям в моем коде. это помогло мне использовать данные в качестве объекта, но это сделало вещи странными.

import requests
import json
from flask import Flask, render_template
from collections import namedtuple

app = Flask(__name__)

@app.route('/')
def index():
  url = 'https://website.com'
  r = requests.get(url, headers={'Authorization': 'Basic authorizationkey'})
  Entities = json.loads(r.content.decode("utf-8"), object_hook=lambda d: namedtuple('X', d.keys())(*d.values()))
  empty = []

  return json.dumps(Entities.Entities)

  for item in Entities.Entities:
    empty.append(item)

  return empty

if __name__ == '__main__':
  app.run()
...