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

如何解决嵌套JSON转DataFrame仅转换第一层级问题并导出至Excel

解决嵌套JSON转展开列DataFrame并导出Excel的问题

针对你提供的季度资产负债表嵌套JSON数据,无法展开深层字段的问题,以下是正确的处理方案:

正确代码实现

import pandas as pd
import json

pd.set_option('display.max_columns', None)

# 读取JSON文件(用with语句自动关闭文件更规范)
with open('file.json', 'r') as f:
    data = json.load(f)

# 核心:指定record_path为嵌套数组,自动展开所有层级字段
df = pd.json_normalize(data['balanceSheetHistoryQuarterly']['balanceSheetStatements'])

# 可选:重命名列名,让表头更易读
df.rename(columns={
    'intangibleAssets.raw': '无形资产_原始值',
    'intangibleAssets.fmt': '无形资产_简化格式',
    'intangibleAssets.longFmt': '无形资产_完整格式',
    'capitalSurplus.raw': '资本公积_原始值',
    'capitalSurplus.fmt': '资本公积_简化格式',
    'capitalSurplus.longFmt': '资本公积_完整格式'
}, inplace=True)

# 导出到Excel,去除索引列
df.to_excel("output\\DATAFILE2.xlsx", index=False)

# 打印查看结果
print(df)

代码说明

  • 之前的错误在于未正确指定record_path:你需要把balanceSheetStatements这个嵌套数组作为目标路径,json_normalize会自动递归展开所有嵌套的键值对,生成如intangibleAssets.raw格式的列名。
  • meta参数是用来提取数组外部的额外字段(比如你的maxAge),如果需要可以在json_normalize中添加meta=['maxAge'],但你的需求里不需要这个字段,所以可以忽略。
  • 重命名列名是可选操作,目的是让Excel表头更直观,不用带点分隔符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 05:50:23