从选项卡的父子对创建jstree层次结构

2024-03-28 14:11:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一对父子关系, 示例:

links=(("Tom","Dick"),
       ("Dick","Harry"),
       ("Tom","Larry"),
       ("Bob","Leroy"),
       ("Bob","Earl"),
       ("Earl","Joy"), 
       ("Joy","Joy child"), 
       ("Joy","Joy child2"),
       ("Joy child2", "Maria"))

我正试图从这些对中创建jstree。我浏览了各种链接,但无法使这个元组工作。有谁能用python提供一个递归函数,它以上面提到的元组或父-子-子对的任何组合作为输入,并通过创建类似于此格式的json来创建层次结构

^{pr2}$

提前谢谢:)我真的很感谢你的帮助!在


Tags: child示例linksbob元组tomlarrymaria
1条回答
网友
1楼 · 发布于 2024-03-28 14:11:09
import json

links = (("Tom","Dick"),("Dick","Harry"),("Tom","Larry"),("Tom","Hurbert"),("Tom","Neil"),("Bob","Leroy"),("Bob","Earl"),("Tom","Reginald"))

name_to_node = {}
root = {'name': 'Root', 'children': []}
for parent, child in links:
    parent_node = name_to_node.get(parent)
    if not parent_node:
        name_to_node[parent] = parent_node = {'name': parent}
        root['children'].append(parent_node)
    name_to_node[child] = child_node = {'name': child}
    parent_node.setdefault('children', []).append(child_node)

print json.dumps(root, indent=4)

相关问题 更多 >