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

Python中3层及n层嵌套字典转换为DataFrame的实现方法

解决方案

固定3层嵌套字典实现

原尝试代码的问题在于最后一层循环仍然遍历了第二层的父字典,且循环变量名重复覆盖了取值,修正后的列表推导式写法如下:

rows = [
    [top_key, mid_key, bottom_key, value]
    for top_key, mid_dict in data.items()
    for mid_key, bottom_dict in mid_dict.items()
    for bottom_key, value in bottom_dict.items()
]

转换为DataFrame可直接使用pandas的DataFrame构造方法,支持自定义列名:

import pandas as pd
df = pd.DataFrame(rows, columns=["顶层键", "中层键", "底层键", "对应值"])

任意n层嵌套字典通用实现

如果需要适配不确定层数的嵌套字典,可以用递归方法扁平化处理:

def flatten_nested_dict(nested_dict, parent_keys=None):
    parent_keys = parent_keys or []
    result = []
    for key, value in nested_dict.items():
        current_keys = parent_keys + [key]
        if isinstance(value, dict):
            result.extend(flatten_nested_dict(value, current_keys))
        else:
            result.append(current_keys + [value])
    return result

调用示例:

# 传入任意层数的嵌套字典即可得到扁平化的行数据
flat_rows = flatten_nested_dict(data)
# 转换为DataFrame,可根据实际层数自定义列名
df = pd.DataFrame(flat_rows)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:15:04