zoukankan      html  css  js  c++  java
  • python 父子节点生成字典

    lines = [(1, 1, '父1节点'), (2, 1, '1-2'), (3, 1, '1-3'), (4, 3, '1-3-4'), (5, 3, '1-3-5'), (6, 3, '1-3-6'),
         (7, 7, '父7节点'), (8, 7, '7-8'), (9, 7, '7-9')] # (id, prarentId, name)
    
    nodes = {}
    data_temp =[]
    for line in lines:
        id, parentId, name = line
    # nodes[]保存需要的字典格式 nodes[id]
    = {'children': [], 'id': id, "parentId": parentId, "name": name, 'orLeafnode': '1'} # orLeafnode 是叶子节点 # data_temp 保存id,parentId
    data_temp.append({'id': id, "parentId": parentId}) data = [] for i in data_temp: id = i['id'] parent_id = i['parentId'] node = nodes[id] if id == parent_id: node['orLeafnode'] = '0' data.append(node) else: parent = nodes[parent_id] parent['orLeafnode'] = '0' parent['children'].append(node) print(data)
    输出:
    [{
        'children': [{
            'children': [],
            'id': 2,
            'parentId': 1,
            'name': '1-2',
            'orLeafnode': '1'
        }, {
            'children': [{
                'children': [],
                'id': 4,
                'parentId': 3,
                'name': '1-3-4',
                'orLeafnode': '1'
            }, {
                'children': [],
                'id': 5,
                'parentId': 3,
                'name': '1-3-5',
                'orLeafnode': '1'
            }, {
                'children': [],
                'id': 6,
                'parentId': 3,
                'name': '1-3-6',
                'orLeafnode': '1'
            }],
            'id': 3,
            'parentId': 1,
            'name': '1-3',
            'orLeafnode': '0'
        }],
        'id': 1,
        'parentId': 1,
        'name': '父1节点',
        'orLeafnode': '0'
    }, {
        'children': [{
            'children': [],
            'id': 8,
            'parentId': 7,
            'name': '7-8',
            'orLeafnode': '1'
        }, {
            'children': [],
            'id': 9,
            'parentId': 7,
            'name': '7-9',
            'orLeafnode': '1'
        }],
        'id': 7,
        'parentId': 7,
        'name': '父7节点',
        'orLeafnode': '0'
    }]



    参考: http://www.cocoachina.com/articles/69831

  • 相关阅读:
    Anaconda和Miniconda的安装
    并联谐振电路频率阻抗及计算曲线带宽案例摘要
    TEM波
    Android Studio实现简单考试应用程序
    android studio实现简单考试应用程序
    Android Studio的简易计算器界面设计
    时谐变换
    简要理解什么是趋肤效应
    c盘清理
    如何把Visual Studio完全安装在其他磁盘
  • 原文地址:https://www.cnblogs.com/snailgirl/p/11653844.html
Copyright © 2011-2022 走看看