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

Python如何从嵌套字典列表提取值并生成指定结构DataFrame

实现方案

你可以通过两种常用方式实现需求,两种方案都依赖pandas库完成DataFrame构造,使用前先导入依赖:

import pandas as pd

方案1:固定层级直接索引(适合已知嵌套结构的场景)

你的数据嵌套层级固定,直接按层级索引取值是最简洁高效的方式,完整代码如下:

# 原始数据
list_1 = [{'one':{'two':{'three':{'a':10,
                                 'b':20,
                                 'c':30,
                                 'd':[1,2,3,4]}}}}]

# 按层级索引提取键d对应的列表
d_values = list_1[0]['one']['two']['three']['d']

# 构造目标结构DataFrame
df = pd.DataFrame({
    'key': ['d'] * len(d_values),
    'values': d_values
})

运行后输出的df结构完全符合要求:

key  values
0   d       1
1   d       2
2   d       3
3   d       4

方案2:递归通用查找(适合嵌套结构不固定的场景)

如果后续数据嵌套层级可能变动,不需要每次手动写索引路径,可以写一个递归查找函数,自动遍历所有嵌套层级定位目标键的值,代码如下:

def find_nested_key(target_key, obj):
    # 字典类型遍历查找
    if isinstance(obj, dict):
        for k, v in obj.items():
            if k == target_key:
                yield v
            # 递归查找嵌套内容
            yield from find_nested_key(target_key, v)
    # 列表类型遍历每个元素查找
    elif isinstance(obj, list):
        for item in obj:
            yield from find_nested_key(target_key, item)

# 原始数据
list_1 = [{'one':{'two':{'three':{'a':10,
                                 'b':20,
                                 'c':30,
                                 'd':[1,2,3,4]}}}}]

# 自动查找键d对应的值,取第一个匹配结果
d_values = next(find_nested_key('d', list_1))

# 构造目标结构DataFrame
df = pd.DataFrame({
    'key': ['d'] * len(d_values),
    'values': d_values
})

这个方法不需要提前知道嵌套层级,只要目标键d存在于嵌套结构中,就能正确提取到对应值,最终生成的DataFrame和方案1结果完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:06:20