Python中API返回JSON转DataFrame遇KeyError: 'records'求助
解决JSON转DataFrame时的KeyError: 'records'问题
错误原因
你遇到的KeyError: 'records'是因为API返回的JSON结构里,records字段并不在顶层,而是嵌套在result字段下面。直接用顶层响应对象读取records自然找不到这个键。
你可以先打印响应的顶层键确认结构:
print(response.keys())
输出会是类似dict_keys(['success', 'result']),说明records在response['result']这个子字典里。
修正后的代码
同时清理掉冗余导入(重复导入了json_normalize,且StringIO未被使用),最终代码如下:
import requests import pandas as pd base_url = "https://data.gov.sg/api/action/datastore_search" url = base_url + "?resource_id=d_8575e84912df3c28995b8e6e0e05205a" response = requests.get(url).json() # 先获取result下的records列表,再转成DataFrame df = pd.json_normalize(response['result']['records']) print(df)
额外说明
如果之后不确定JSON结构,可以用print(response['result'])查看result里的所有字段,确保你要读取的键存在其中,避免类似的键错误问题。
内容的提问来源于stack exchange,提问作者Eun_G
相关产品推荐
相关产品推荐

