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

如何合并拆分字典并生成单个Pandas DataFrame?

问题修复:从嵌套列表生成目标DataFrame

输入数据

l = [
    {'name': 'foo', 'data': [{'id': 1}, {'type': 'type1'}, {'class': 'A'}]},
    {'name': 'bar', 'data': [{'id': 2}, {'type': 'type2'}, {'class': 'B'}]}
]

中间目标字典

new_d  = {
    'name': ['foo', 'bar'],
    'id': [1, 2],
    'type': ['type1', 'type2'],
    'class': ['A', 'B']
}

最终期望DataFrame输出

name  id  type class
 foo   1 type1     A
 bar   2 type2     B

错误代码及报错信息

你尝试的代码:

new_d = {}

for d in l:
    new_d = {'name': d['name'], **d['data']}

df = pd.DataFrame(new_d)

报错:

TypeError: 'list' object is not a mapping


问题原因

  1. d['data']是列表类型,不能用**解包(**只能用于字典映射类型);
  2. 循环中每次都会直接覆盖new_d,没有实现数据收集的逻辑。

修复方案

方案一:先构建中间字典new_d

import pandas as pd

l = [
    {'name': 'foo', 'data': [{'id': 1}, {'type': 'type1'}, {'class': 'A'}]},
    {'name': 'bar', 'data': [{'id': 2}, {'type': 'type2'}, {'class': 'B'}]}
]

# 初始化目标字典的空列表
new_d = {'name': [], 'id': [], 'type': [], 'class': []}

for item in l:
    # 收集name字段
    new_d['name'].append(item['name'])
    # 把data列表中的多个小字典合并成一个完整字典
    data_dict = {}
    for sub_dict in item['data']:
        data_dict.update(sub_dict)
    # 收集各个字段的值
    new_d['id'].append(data_dict['id'])
    new_d['type'].append(data_dict['type'])
    new_d['class'].append(data_dict['class'])

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

方案二:直接生成扁平字典列表(更简洁)

无需先构建new_d,直接把每个嵌套元素转换成扁平字典,再生成DataFrame:

import pandas as pd

l = [
    {'name': 'foo', 'data': [{'id': 1}, {'type': 'type1'}, {'class': 'A'}]},
    {'name': 'bar', 'data': [{'id': 2}, {'type': 'type2'}, {'class': 'B'}]}
]

flat_items = []
for item in l:
    # 初始化扁平字典,先放入name
    flat_dict = {'name': item['name']}
    # 合并data列表里的所有小字典
    for sub_dict in item['data']:
        flat_dict.update(sub_dict)
    flat_items.append(flat_dict)

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

运行结果

两种方案都会输出你期望的DataFrame:

name  id   type class
0  foo   1  type1     A
1  bar   2  type2     B

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 07:36:16