Перебирайте ответы API json и добавляйте их в один словарь Python - PullRequest
0 голосов
/ 24 июня 2019

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

Их документация в php, и мне трудно перевести ее или заставить работать в моем случае.

Идея состоит в том, чтобы получить ответы API и добавить их в файл python dict или .json.

На данный момент у меня определена эта функция:

    headers = {'API-OPR': '%s' % opr_api_key}
    api_results = {}
    for items in domains_to_check:
        url = 'https://openpagerank.com/api/v1.0/getPageRank?domains%5B0%5D=' + items
        request = requests.get(url, headers=headers)
        api_result = request.json()

Список domains_to_check уже предопределен и содержит домены для теста.

Теперь, как вы можете видеть выше, код отправляет запрос в OPR и получает результат json, который он сохраняет в api_result, и, как и ожидалось, он просто добавляет последний результат API.

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

dict.append[result] не работает, потому что в результате получается файл .json. Не диктон питона.

Я пытался преобразовать результат в диктант Python, но не получилось.

Документация API намекает на то, что массив может быть отправлен через API из одного запроса , но не удалось скопировать этот код из php.

Не уверен, как это решить. Или как к нему подойти. Кажется достаточно простым, но я просто не могу его сломать.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 24 июня 2019

Рассмотрите возможность использования списка, так как вы не упоминаете связывание результатов ни с одним ключом.

def send_domains_to_OPR():
    headers = {'API-OPR': '%s' % opr_api_key}
    api_results = []
    for items in domains_to_check:
        url = 'https://openpagerank.com/api/v1.0/getPageRank?domains%5B0%5D=' + items
        request = requests.get(url, headers=headers)
        api_results.append(request.json())

Если вы хотите сопоставить ответ со списком доменов, чтобы проверить, вы всегда можете сжать их:

for items, response in zip(domains_to_check, api_results):
  print(items)
  print(response)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...