You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

API规格变更后JSON转为pandas DataFrame报错该如何解决?

解决方案

错误原因

新版API返回的JSON结构嵌套了两层data字段:顶层的data是字典类型,你需要的目标列表存储在顶层data下的内层data字段里。你之前的两种写法都没有定位到正确的列表路径,所以触发类型错误:

  • 调用json_normalize(data, ['data'])时,取到的是顶层data对应的字典{"data": [xxx]},不是要求的列表类型
  • 调用pd.DataFrame.from_records(data)时,是直接把JSON顶层的三个键(status、code、data)传入转换,结构完全不匹配

调整方案

方案1:直接提取目标列表生成DataFrame(兼容原有逻辑,写法最简单)

仅需修改目标数据的提取路径即可,代码如下:

import json
import pandas as pd

jsonfile = 'file.json'
with open(jsonfile) as j:
  data = json.load(j)
  # 直接提取内层data的列表数据
  rows = data["data"]["data"]
  df = pd.DataFrame(rows, columns=['id', 'name', 'score', 'average'])

方案2:使用json_normalize的正确写法

如果要使用json_normalize,需要指定两层data的嵌套路径作为记录路径:

import json
import pandas as pd

jsonfile = 'file.json'
with open(jsonfile) as j:
  data = json.load(j)
  # record_path传入嵌套的key路径
  df = pd.json_normalize(data, record_path=['data', 'data'])

内容的提问来源于stack exchange,提问作者p3hndrx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 09:06:02