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

Python中如何将嵌套JSON扁平化转换为Pandas DataFrame

嵌套JSON转DataFrame实现方案

原有方案问题

你之前使用的flatten_json函数会将整个JSON结构拍平为单个全局字典,所有字段的属性会被合并为列,无法实现每个字段名单独占一行的要求,也不能自动补全不同字段的缺失属性值。

兼容多层嵌套的实现代码

直接使用pandas内置的json_normalize即可实现需求,该函数原生支持嵌套结构展开、自动填充缺失值,无需自行维护递归拍平逻辑:

import pandas as pd

def json_fields_to_df(nested_json):
    # 提取所有字段的配置信息
    fields_config = nested_json.get("fields", {})
    # 展开每个字段的嵌套属性
    df = pd.json_normalize(list(fields_config.values()))
    # 新增字段名列,放在第一列
    df.insert(0, "field_name", list(fields_config.keys()))
    # 缺失值统一替换为NULL,不需要可以删除这行
    df = df.fillna("NULL")
    return df

效果测试

测试简单嵌套JSON

输入示例:

simple_json = {
    "fields": {
        "tcidte": {
            "mode": "required",
            "type": "date",
            "format": "%Y%m%d"
        },
        "tcmcid": {
            "mode": "required",
            "type": "string"
        },
        "tcacbr": {
            "mode": "required",
            "type": "string"
        }
    }
}
print(json_fields_to_df(simple_json))

输出结果:

field_name      mode    type   format
0     tcidte  required    date  %Y%m%d
1     tcmcid  required  string     NULL
2     tcacbr  required  string     NULL

测试深层嵌套JSON

输入示例:

deep_json = {
    "fields": {
        "action": {
            "type": {
                "field_type": "string"
            },
            "mode": "required"
        },
        "upi": {
            "type": {
                "field_type": "string"
            },
            "regex": "^[0-9]{9}$",
            "mode": "required"
        },
        "firstname": {
            "type": {
                "field_type": "string"
            },
            "mode": "required"
        }
    }
}
print(json_fields_to_df(deep_json))

输出结果:

field_name      mode type.field_type        regex
0     action  required          string         NULL
1        upi  required          string  ^[0-9]{9}$
2  firstname  required          string         NULL

说明

  • 多层嵌套的属性会自动用.拼接生成列名,无需额外处理
  • 缺失属性自动填充为NULL,符合需求
  • 方案兼容绝大多数嵌套JSON结构,不需要调整递归逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:15:04