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

如何从嵌套字典列表生成指定格式的Pandas DataFrame?

解决嵌套字典列表转指定结构DataFrame的问题

方法1:用pd.json_normalize()直接展开嵌套字段

这是处理嵌套字典最省心的方式,Pandas内置的json_normalize专门用来解析这类嵌套结构:

import pandas as pd

# 示例嵌套字典列表(替换成你的真实数据)
dict_items = [
    {"user_id": 101, "profile": {"name": "张三", "email": "zhangsan@example.com", "age": 28}},
    {"user_id": 102, "profile": {"name": "李四", "email": "lisi@example.com", "age": 32}}
]

# 一键展开嵌套字段
df = pd.json_normalize(dict_items)
# 可选:去除列名里的嵌套前缀(比如把profile.name改成name)
df.columns = df.columns.str.replace("profile.", "")
print(df)

输出会是你期望的扁平化表格:

user_idnameemailage
101张三zhangsan@example.com28
102李四lisi@example.com32

方法2:手动遍历构造扁平化列表

如果需要更灵活的字段控制(比如跳过某些嵌套字段、修改字段值),可以手动循环处理:

import pandas as pd

dict_items = [
    {"user_id": 101, "profile": {"name": "张三", "email": "zhangsan@example.com", "age": 28}},
    {"user_id": 102, "profile": {"name": "李四", "email": "lisi@example.com", "age": 32}}
]

# 把每个嵌套字典拆成扁平结构
flat_data = []
for item in dict_items:
    # 合并外层字典和内层嵌套字典,同时移除原嵌套字段
    flat_dict = {**item, **item.pop("profile")}
    flat_data.append(flat_dict)

df = pd.DataFrame(flat_data)
print(df)

为什么直接用pd.DataFrame()不行?

直接传入嵌套字典列表时,Pandas会把嵌套的字典当作单个列的取值,而不会自动解析展开。比如你会得到user_id和profile两列,profile列里存的是完整的字典对象,这和你要的扁平化列结构完全不符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 04:35:36