You need to enable JavaScript to run this app. Python3 递归实现任意深度嵌套字典到指定树结构的转换方法
优惠活动
大模型
产品
解决方案
定价
更多

Python3 递归实现任意深度嵌套字典到指定树结构的转换方法

嵌套字典转标准化树结构Python 3实现方案

核心实现逻辑

通过递归遍历每一层字典的键值对,对每个节点做标准化封装:无实际子节点的叶子节点仅保留title、key两个字段,存在子节点的节点挂载children数组存储所有下级节点,完全匹配目标结构要求。

可直接运行的代码

def _build_node(node_label, node_value):
    # 生成基础节点结构
    built_node = {
        "title": node_label,
        "key": node_label
    }
    # 仅当节点存在非空子项时,才添加children字段,避免生成空children数组
    if node_value:
        built_node["children"] = [
            _build_node(child_label, child_value)
            for child_label, child_value in node_value.items()
        ]
    return built_node


def transform_nested_dict(raw_nested_dict):
    # 原嵌套字典最外层为单根节点结构,提取根节点信息完成转换
    root_label, root_value = next(iter(raw_nested_dict.items()))
    return _build_node(root_label, root_value)

调用示例

# 输入样例字典
sample_dict = {
    'root_node': {
        'child_1': {
            'child_1a': {
                'child_1a_a': {},
                'child_1a_b': {}
            },
            'child_1b': {
                'child_1b_a': {
                    'child_1b_a_a': {},
                    'child_1b_a_b': {}
                },
                'child_1b_b': {
                    'child_1b_b_a': {}
                },
                'child_1b_c': {}
            }
        },
        'child_2': {}
    }
}

# 执行转换
tree_output = transform_nested_dict(sample_dict)

实现匹配说明

  • 完全对齐目标结构要求:所有节点的title、key字段直接取原字典的节点名称,无额外自定义生成逻辑
  • 细节处理和样例输出一致:原字典值为空的叶子节点,不会生成空的children字段,和样例中child_1b_c这类节点的输出格式完全匹配(也规避了多数递归实现常见的“强制给所有节点加空children数组”的踩坑问题)
  • 支持任意深度嵌套:递归逻辑没有硬编码层级限制,只要原嵌套字典的深度在Python默认递归上限内即可正常转换
  • 无第三方依赖:纯标准库实现,兼容Python 3.6及以上所有3.x版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.10 19:15:04