从Openpagerank API和TypeError获取json输出

2024-05-13 11:50:50 发布

您现在位置:Python中文网/ 问答频道 /正文

import requests
import json

headers = {'API-OPR':'openpagerank API key'}
domain = 'https://www.hootsuite.com'
url = 'https://openpagerank.com/api/v1.0/getPageRank?domains%5B0%5D=' + domain
request = requests.get(url, headers=headers)

result = request.json()
print(result)

输出JSON:

output: {'status_code': 200, 'response': [{'status_code': 200, 'error': '', 'page_rank_integer': 7, 'page_rank_decimal': 7.2, 'rank': '451', 'domain': 'hootsuite.com'}], 'last_updated': '18th Oct 2020'}

我想打印page_rank_decimal,因为我使用了 print(result["response"]["page_rank_decimal"])然后它将给出 TypeError: list indices must be integers or slices, not list 如何解决


Tags: httpsimportcomapijsonurldomainpage
2条回答

您需要访问字典中列表中的字典值

正如您所做的那样,打印result将为您提供一本词典

如果您尝试result["response"],那么您将得到一个包含1个元素[{'status_code': 200, 'error': '', 'page_rank_integer': 7, 'page_rank_decimal': 7.2, 'rank': '451', 'domain': 'hootsuite.com'}]的列表。(列表中的元素是字典。)

要访问“response”第一个元素,请使用result["response"][0]。它将输出{'status_code': 200, 'error': '', 'page_rank_integer': 7, 'page_rank_decimal': 7.2, 'rank': '451', 'domain': 'hootsuite.com'}

要访问字典中"page_rank_decimal"的值,请使用result["response"][0]["page_rank_decimal"],它将给出您的答案

output: {'status_code': 200, 'response': [{'status_code': 200, 'error': '', 'page_rank_integer': 7, 'page_rank_decimal': 7.2, 'rank': '451', 'domain': 'hootsuite.com'}], 'last_updated': '18th Oct 2020'}

响应的结构是一个数组[。您必须指定一个索引。在这种情况下,可以使用print(result["response"][0]["page_rank_decimal"]),因为响应中只有一行

相关问题 更多 >