我一直在尝试从api中为django DB植入一些新冠病毒数据,并获取特定数据类型的KeyError——在源代码中,它是一个浮动时间戳(“实验室报告日期”:“2014-10-13T00:00:00.000”)。(编辑:不确定类型是否相关,但在此处尝试全面)
我尝试用python执行一个更简单的API请求,但得到了相同的keyrerror。下面是我的代码和错误消息
import requests
response = requests.get("https://data.cityofchicago.org/resource/naz8-j4nc.json")
print(response.json())
输出如下所示:
[
{
"cases_age_0_17": "1",
"cases_age_18_29": "1",
"cases_age_30_39": "0",
"cases_age_40_49": "1",
"cases_age_50_59": "0",
"cases_age_60_69": "0",
"cases_age_70_79": "1",
"cases_age_80_": "0",
"cases_age_unknown": "0",
"cases_asian_non_latinx": "1",
"cases_black_non_latinx": "0",
"cases_female": "1",
"cases_latinx": "1",
"cases_male": "3",
"cases_other_non_latinx": "0",
"cases_total": "4",
"cases_unknown_gender": "0",
"cases_unknown_race_eth": "1",
"cases_white_non_latinx": "1",
"deaths_0_17_yrs": "0",
"deaths_18_29_yrs": "0",
"deaths_30_39_yrs": "0",
"deaths_40_49_yrs": "0",
show more (open the raw output data in a text editor) ...
"hospitalizations_unknown_gender": "3",
"hospitalizations_unknown_race_ethnicity": "16",
"hospitalizations_white_non_latinx": "135"
}
]
到目前为止还不错,但如果我尝试提取问题密钥,我会得到keyrerror:
report_date = []
for i in response.json():
ls = i['lab_report_date']
report_date.append(ls)
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
/var/folders/h3/5wlbmz0s3jb978hyhtvf9f4h0000gn/T/ipykernel_2163/2095152945.py in <module>
1 report_date = []
2 for i in response.json():
----> 3 ls = i['lab_report_date']
4 report_date.append(ls)
KeyError: 'lab_report_date'
无论是否使用for循环,都会出现此问题。我已经彻底改变了自己,所以如果我的代码中有任何错误或遗漏,请道歉
因为数组response.json()中有一个项不包含键
lab_report_date
。当后端数据不是很干净时就会发生这种情况所以您需要做的是使用try-except代码块来处理此异常。下面的代码现在运行良好
上述代码的输出如下所示
您可以使用dict get方法从json响应读取数据,如下所示:-
您好,我有一个类似的问题,就是有时响应是空的 来自导致代码执行停止的api请求:
我现在找到了一个简单的解决方案:
假设您有一个:
//这将确保代码不会停止执行。
相关问题 更多 >
编程相关推荐