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

Python新手问询:层级字典转text-nodes指定格式的实现方法

解决层级字典转嵌套节点结构的Python实现

嘿,作为Python新手,这个多层嵌套字典转指定结构的需求,用递归函数来处理最顺手啦!因为递归天生就擅长处理这种一层套一层的层级数据。我给你写个简洁的实现,还会拆解步骤,帮你理解:

def dict_to_tree(nested_dict):
    tree = []
    for key, value in nested_dict.items():
        node = {'text': key}
        # 如果子字典不为空,递归处理生成nodes
        if value:
            node['nodes'] = dict_to_tree(value)
        tree.append(node)
    return tree

# 测试你的示例字典
input_dict = {'Parent 1': {'Child 1': {'Grandchild 1': {}, 'Grandchild 2': {}}, 'Child 2': {}}, 'Parent 2': {}}
result = dict_to_tree(input_dict)
print(result)

运行这段代码后,输出的结果就是你想要的格式:

[{'text': 'Parent 1', 'nodes': [{'text': 'Child 1', 'nodes': [{'text': 'Grandchild 1'}, {'text': 'Grandchild 2'}]}, {'text': 'Child 2'}]}, {'text': 'Parent 2'}]

简单解释下这个函数的逻辑:

  • 我们定义了dict_to_tree函数,它接收一个嵌套字典作为输入。
  • 初始化一个空列表tree来存放转换后的节点。
  • 遍历输入字典的每个键值对:
    • 先创建一个基础节点,把键作为text的值。
    • 如果当前值不是空字典(说明有子节点),就递归调用dict_to_tree处理这个子字典,把返回的结果作为当前节点的nodes值。
    • 把这个节点添加到tree列表里。
  • 最后返回整个tree列表,也就是转换后的结构。

这个方法很灵活,不管你的字典嵌套多少层,都能正确转换成你需要的节点结构~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 22:52:33