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
相关产品推荐
相关产品推荐

