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

如何用Python的pandas将嵌套JSON展平为含多层级信息的DataFrame?

解决方案:展平嵌套JSON为结构化DataFrame

你可以直接使用pandas.json_normalize()的record_path和meta参数一步完成嵌套JSON的展平,无需分开处理层级。以下是完整实现代码:

import pandas as pd

sample_json ={
"workspaces": [
    {
        "wsid": "1",
        "wsname": "firstworkspace",
        "report":[{"reportname":"r1ws1"},{"reportname":"r2ws1"},{"reportname":"r1ws1"}]
    },
    {
        "wsid": "2",
        "wsname": "secondworkspace",
        "report":[{"reportname":"r1ws2"},{"reportname":"r2ws2"},{"reportname":"r1ws2"}]
    }
]}

# 展平嵌套JSON并关联层级字段
df = pd.json_normalize(
    sample_json['workspaces'],
    record_path='report',  # 指定要展开的嵌套列表字段
    meta=['wsid', 'wsname']  # 指定需要保留的上层工作空间字段
)

# 调整列顺序(可选,让结果更符合预期)
df = df[['wsid', 'wsname', 'reportname']]

print(df)

执行后输出结果:

wsid         wsname reportname
0    1  firstworkspace      r1ws1
1    1  firstworkspace      r2ws1
2    1  firstworkspace      r1ws1
3    2 secondworkspace      r1ws2
4    2 secondworkspace      r2ws2
5    2 secondworkspace      r1ws2

参数说明

  • record_path='report':告诉函数要展开的嵌套列表字段是每个工作空间下的report数组
  • meta=['wsid', 'wsname']:指定需要从上层工作空间层级保留的字段,函数会自动将每个report条目与对应的wsid、wsname关联

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 09:25:26