python 多个全路径列表转换为pyecharts tree图所需格式

请问如何将:

item1=['e0', 'e1', 'e7', 'e11']
item2=['e0', 'e1', 'e7', 'e8', 'e9']
item3=['e0', 'e1', 'e2']


转换为pyecharts tree图所需格式:

    data = [
        {"name": "e0",
         "children": [
             {"name": "e1",
              "children": [
                  {"name": "e7",
                   "children": [
                       {"name": "e90"},
                       {"name": "e8",
                        "children": [
                            {"name": "e9"
                             }]}
                   ]},
                  {"name": "e2"},
              ]},
         ],
         }
    ]

 画图

import json

from pyecharts.charts import Page, Tree

def tree_base(data):
    tree = (
        Tree()
            .add("", data)
            .set_global_opts(title_opts=opts.TitleOpts(title="Tree-基本示例"))
    )
    tree.render('./map1.html')
    return tree

tree_base(data)

如果可以的话,能否用以下列表实现:

​

item1=['e0', 'e1', 'e7', 'e11']
item2=['e1', 'e7', 'e8', 'e9']
item3=['e1', 'e2']


[点击并拖拽以移动]
​

效果如图:

 

item1=['e0', 'e1', 'e7', 'e90']
item2=['e1', 'e7', 'e8', 'e9']
item3=['e1', 'e2']

lis = [item1,item2,item3]
tdict = {}
data = []
for li in lis:
    p = None
    for x in li:
        if x in tdict:
            p = tdict[x]
            continue
        d = {"name": x}
        tdict[x] = d
        if p:
            p.setdefault("children",[]).append(d)
        else:
            data.append(d)
        p = d

import json
print(json.dumps(data,indent=4))

 

什么转换规律?

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y