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

pandas将JSON转为DataFrame时不同场景报错问题求解

问题原因
  • 直接触发报错的原因是多余操作:pd.read_json() 执行后已经返回了DataFrame类型结果,你额外将其传入pd.DataFrame()做二次转换,触发了pandas的结构校验规则导致报错。
  • 即使去掉二次转换,直接执行pd.read_json('sample2.json')也无法得到和场景1一致的结果:因为pd.read_json的默认解析逻辑和json.loads后转DataFrame的逻辑不同,遇到JSON对象内同时存在标量值和数组值时,pd.read_json不会自动将标量值广播为和数组长度一致的多行,会直接报结构不匹配错误,或者生成不符合预期的宽表结构。
解决方法

方案1:和场景1逻辑统一(入门优先选,不易出错)

用Python内置json模块读取文件,和你处理JSON字符串的逻辑完全对齐,避免pandas默认解析规则的差异:

import json
import pandas as pd

# 读取本地JSON文件
with open("sample2.json", "r", encoding="utf-8") as f:
    json_data = json.load(f)

# 转DataFrame,逻辑和场景1完全一致
df = pd.DataFrame(json_data)
print(df)

方案2:调整pd.read_json的使用方式

如果要直接用pandas读取,首先去掉多余的二次转换即可正常返回结果。
如果你的JSON文件是每行一条独立JSON记录的JSON Lines格式,额外加lines=True参数即可:

import pandas as pd
df = pd.read_json("sample2.json", lines=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:18:03