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

  • 相关阅读:
    Erlang/OTP:基于Behaviour的回调函数
    使用ACE创建进程
    linux查看硬件信息
    测试~~
    很好的:纠错函数linux
    转帖
    sss
    转帖
    普通函数、虚函数、纯虚函数、
    ACE_Event_Handle
  • 原文地址:https://www.cnblogs.com/snailgirl/p/11653844.html
Copyright © 2011-2022 走看看