Python中将API返回的JSON结果转换为DataFrame报错如何解决
错误原因
- 你给
json_normalize传入的第一个参数是原始的response响应对象,而非解析后的JSON结构。response本身包含字节类型的响应数据,无法直接用字符串作为索引取值,触发了类型错误。 - 你指定的
record_path参数值为abc,但从你提供的响应示例来看,待转换的结构化数据列表存放在data字段下,参数值和实际结构不匹配。
可用解决代码
import pandas as pd # 先把响应解析为Python可操作的JSON字典结构 parsed_json = response.json() # 方法1:直接将data字段下的平级字典列表转为DataFrame,适合无嵌套字段的场景 df = pd.DataFrame(parsed_json['data']) # 方法2:用json_normalize转换,适合后续有嵌套字段需要自动展平的场景 # df = pd.json_normalize(parsed_json, record_path='data') print(df.head())
其他注意事项
如果后续接口返回的数据里存在嵌套的子对象,json_normalize可以通过sep参数自定义嵌套字段拼接的分隔符,也可以通过meta参数提取外层公共字段,能满足更复杂的JSON转DataFrame需求。
内容的提问来源于stack exchange,提问作者Tez
相关产品推荐
相关产品推荐

