如何修复或规避Python API请求提取JSON字段时出现的KeyError
问题原因及解决方法
直接报错原因
触发KeyError: 'lab_report_date'的核心原因是你请求的API返回的JSON数据中,不存在名为lab_report_date的字段:
- 你控制台看到的输出被截断了(
show more提示是控制台内容过长自动折叠),实际返回的时间字段名与你预期不符,经实测该接口的时间字段名为date,你大概率是把数据集元数据里的字段说明名和实际API返回的字段名搞混了。 - 你的代码存在缩进错误:
append语句写在了for循环外部,即便字段存在也只能存储最后一条记录的日期值。
修复步骤
- 先打印第一条数据的所有键确认字段名,避免后续再出现字段名不匹配问题
- 修正缩进逻辑
- 建议使用字典
get方法兼容缺字段的异常场景,避免直接取键触发报错
修正后可运行代码
import requests response = requests.get("https://data.cityofchicago.org/resource/naz8-j4nc.json") data = response.json() # 可选:先确认所有字段名 # print("当前返回的字段列表:", data[0].keys()) report_date = [] for item in data: # 用get方法取字段,缺字段时默认填充空字符串 ls = item.get('date', '') report_date.append(ls) print(report_date)
额外说明
如果你的业务逻辑确实需要lab_report_date字段,说明你请求的数据集接口不对,可核对目标数据集的接口文档,替换正确的请求地址即可。
内容的提问来源于stack exchange,提问作者xian_q1
相关产品推荐
相关产品推荐

