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

使用Python DataFrame规范化嵌套JSON的问题

使用Python DataFrame规范化嵌套JSON的问题

嘿,我之前处理嵌套JSON转DataFrame的时候也踩过类似的坑,不过用Pandas的话其实有几种实用方法能搞定你这个场景!先看你的JSON结构,每个主条目里的NestedAttribute1/2/3都是只包含单个字典的数组,目标应该是把这些嵌套的id和value展开成扁平的列对吧?

我给你两种常用的解决方案:

方法一:用apply手动提取字段

这种方法比较直观,适合刚接触Pandas的朋友,就是逐个处理每个嵌套列,把数组里的字典字段提取出来:

import pandas as pd
import json

# 先加载你的JSON数据(假设存在本地文件中)
with open('your_data.json', 'r', encoding='utf-8') as f:
    json_data = json.load(f)

# 把aaData转换成初始DataFrame
df = pd.DataFrame(json_data['aaData'])

# 提取每个嵌套属性的id和value
df['NestedAttribute1_id'] = df['NestedAttribute1'].apply(lambda x: x[0]['id'])
df['NestedAttribute1_value'] = df['NestedAttribute1'].apply(lambda x: x[0]['value'])

df['NestedAttribute2_id'] = df['NestedAttribute2'].apply(lambda x: x[0]['id'])
df['NestedAttribute2_value'] = df['NestedAttribute2'].apply(lambda x: x[0]['value'])

df['NestedAttribute3_id'] = df['NestedAttribute3'].apply(lambda x: x[0]['id'])
df['NestedAttribute3_value'] = df['NestedAttribute3'].apply(lambda x: x[0]['value'])

# 删除原来的嵌套列,得到扁平的DataFrame
df = df.drop(['NestedAttribute1', 'NestedAttribute2', 'NestedAttribute3'], axis=1)

方法二:用pd.json_normalize(更专业的方式)

Pandas专门提供了json_normalize工具来处理嵌套JSON,代码更简洁,扩展性也更好:

import pandas as pd
import json

with open('your_data.json', 'r', encoding='utf-8') as f:
    json_data = json.load(f)

# 先提取主数据里的Name列作为基础
df_main = pd.DataFrame(json_data['aaData'])[['Name']]

# 遍历每个嵌套属性,展开后合并到主DataFrame
for attr_name in ['NestedAttribute1', 'NestedAttribute2', 'NestedAttribute3']:
    # 展开当前嵌套属性,用record_prefix给字段加前缀避免重名
    df_nested = pd.json_normalize(
        json_data['aaData'],
        record_path=attr_name,
        meta=['Name'],
        record_prefix=f'{attr_name}_'
    )
    # 和主数据合并
    df_main = df_main.merge(df_nested, on='Name', how='left')

# 最终的df_main就是规范化后的扁平表

小提醒

如果你的嵌套数组以后可能出现多个元素的情况,上面的方法就需要调整——得把每个数组元素展开成单独的行,这时候只需要在json_normalize里指定record_path为对应嵌套列、meta保留其他主字段就行,不过看你现在的例子每个数组只有一个元素,上面的方法完全够用~

备注:内容来源于stack exchange,提问作者reddwarfcrew

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 09:29:36