遍历API json响应并将其添加到一个python字典中

时间:2019-06-24 13:53:49

标签: python json rest

我想使用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,并获取存储在api_result中的json结果,并且按预期的那样,它只会添加最后一个API结果。

我想遍历列表中的所有域,发送请求并将其附加到结果中。

dict.append[result]不起作用,因为结果是一个.json文件。不是python字典。

我尝试将结果转换为Python dict,但失败了。

API文档提示可以通过API from a single request发送数组,但无法从php复制此代码。

不确定如何解决此问题。或如何处理。看起来很简单,但我无法打破它。

欢迎任何帮助。

1 个答案:

答案 0 :(得分:0)

考虑使用列表,因为您没有提到将结果与任何键相关联。

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)