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

Python如何提取嵌套字典所有键的全父级路径用作Excel表头

嵌套字典全层级键路径提取实现

核心通过递归遍历所有字典层级,逐层拼接键路径,碰到叶子值就记录路径和值的映射,输出结果可以直接用来生成Excel。

实现代码

def extract_flat_paths(nested_dict, parent_path=""):
    flat_result = {}
    for key, val in nested_dict.items():
        # 拼接当前键的完整路径
        current_path = f"{parent_path}/{key}" if parent_path else key
        if isinstance(val, dict):
            # 仍是嵌套字典,递归进入下一层处理
            flat_result.update(extract_flat_paths(val, current_path))
        else:
            # 到达叶子节点,存储路径和对应值
            flat_result[current_path] = val
    return flat_result

# 用给出的示例字典测试
test_dict = {
    "name":"Pete", 
    "last-name": "Pencil", 
    "adres":{
        "street": "example1street", 
        "number":"5", 
        "roommate":{
            "gender":"male"
        }
    }
}

flat_data = extract_flat_paths(test_dict)

运行结果

执行后得到的flat_data结构如下,每个键就是要求的/分隔表头,值就是对应单元格内容:

{
    'name': 'Pete',
    'last-name': 'Pencil',
    'adres/street': 'example1street',
    'adres/number': '5',
    'adres/roommate/gender': 'male'
}

适配xmltodict解析场景的补充说明

  • xmltodict默认解析出的@开头属性节点、#text文本节点,上述代码可以直接兼容,路径会自动拼接这类特殊键
  • 如果XML存在重复同级标签,xmltodict会把对应值解析为列表,可以在判断逻辑中新增isinstance(val, list)分支,遍历列表时把元素索引拼接到路径中,比如生成adres/roommate/0/gender这类格式,按需调整即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 12:33:33