我想使用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复制此代码。
不确定如何解决此问题。或如何处理。看起来很简单,但我无法打破它。
欢迎任何帮助。
答案 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)