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

Python pandas如何提取嵌套JSON字典生成目标结构DataFrame

问题原因

使用pd.DataFrame.from_dict(data)时,pandas只会解析JSON最外层的键值对,内层嵌套的字典结构不会自动拆分,因此Family字段会以整列字典对象的形式存在,展示为{...}格式,无法直接读取内部字段。

解决方案

方法1:读取时直接自动拆分嵌套结构(推荐)

直接使用pandas自带的json_normalize方法,会自动递归拆分所有层级的嵌套字典,一步生成扁平化表格:

import pandas as pd

# 直接读取并自动拆分层级字段
df = pd.json_normalize(data)

# 提取需要的目标字段,重命名为中文列名
final_df = df[[
    "Family.father_name",
    "Family.mother_name",
    "Family.residence_status",
    "Family.pet_count"
]]
final_df.columns = ["父亲姓名", "母亲姓名", "居住情况", "宠物数量"]

方法2:已生成单Family列的df后二次拆分

如果你已经执行了df = pd.DataFrame.from_dict(data)拿到了带Family字典列的表格,可以单独拆分该列后拼接:

import pandas as pd

df = pd.DataFrame.from_dict(data)

# 拆分Family列的字典为独立列
family_columns = pd.json_normalize(df["Family"])

# 拼接拆分后的列,筛选目标字段并重命名
final_df = pd.concat(
    [df.drop(columns=["Family"]), family_columns],
    axis=1
)[["father_name", "mother_name", "residence_status", "pet_count"]]
final_df.columns = ["父亲姓名", "母亲姓名", "居住情况", "宠物数量"]
排查提示

如果运行时提示KeyError,先执行以下代码打印所有拆分后的列名,确认实际字段拼写和层级是否和预期一致:

print(pd.json_normalize(data).columns.tolist())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 04:01:14