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

使用json_normalize提取多层JSON元数据,需新增subGroup字段

如何在json_normalize生成的DataFrame中包含subGroup字段?

你现在的JSON数据是这样的:

ds = [{ "name": "groupa", "subGroups": [{ "subGroup": 1, "people": [{ "firstname":"Tony", }, { "firstname":"Brian" } ] }] }, { "name": "groupb", "subGroups": [{ "subGroup": 1, "people": [{ "firstname":"Tony", }, { "firstname":"Brian" } ] }] } ]

执行json_normalize时只指定了name作为元数据,所以结果里只有firstname和name列。要把subGroup也加进来其实很简单,只需要在meta参数里补充subGroup的嵌套路径就行。

解决方案代码

from pandas import json_normalize

# 提取包含subGroup的DataFrame
df = json_normalize(
    ds,
    record_path=['subGroups', 'people'],  # 展开people列表
    meta=['name', ['subGroups', 'subGroup']]  # 同时提取name和subGroup
)

# 可选:把自动生成的列名"subGroups.subGroup"改成更简洁的"subGroup"
df = df.rename(columns={'subGroups.subGroup': 'subGroup'})

最终结果

执行后你会得到这样的DataFrame:

firstnamenamesubGroup
Tonygroupa1
Briangroupa1
Tonygroupb1
Briangroupb1

原理说明

json_normalize的meta参数支持嵌套路径,因为subGroup和people是同级的,都在subGroups这个数组对象里,所以我们需要用['subGroups', 'subGroup']来明确指定这个字段的位置,这样工具就能从people的父层级中提取出对应的subGroup值,和展开后的people条目一一对应。

内容的提问来源于stack exchange,提问作者More Than Five

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:41:04