Python调用Facts API获取特定内容:如何仅输出fact字段内容
正确提取fact字段的方法
首先明确API返回的是包含单个字典的列表,解析时需要注意层级结构:
错误原因分析
response.fact无效:response是requests库的Response对象,本身没有fact属性,必须先将返回的JSON字符串解析为Python对象才能访问字段。json.load(response.json())报错:response.json()已经把JSON转换成了Python列表,而json.load()的参数需要是可读取的文件对象,不能直接传入列表,因此触发AttributeError。
正确代码示例
import requests limit = 1 api_url = 'https://api.api-ninjas.com/v1/facts?limit={}'.format(limit) response = requests.get(api_url, headers={'X-Api-Key': API_KEY}) # 解析JSON为Python列表 data = response.json() # 取列表第一个元素(字典),再提取fact字段 print(data[0]['fact'])
补充说明
如果limit设置大于1,返回的列表会包含多个字典,可通过循环遍历获取每个fact:
data = response.json() for item in data: print(item['fact'])
内容的提问来源于stack exchange,提问作者illy
相关产品推荐
相关产品推荐

