美文网首页
无限极分类

无限极分类

作者: 垃圾桶边的狗 | 来源:发表于2021-05-25 17:43 被阅读0次
    import json
    
    def generate_tree(source, parent):
    
        tree = []
    
        for item in source:
    
            if item["parent"] == parent:
    
                item["child"] = generate_tree(source, item["id"])
    
                tree.append(item)
    
        return tree
    
    if __name__ == '__main__':
        permission_source = [
        {"id": 1, "name": '电器', "parent": 0},
        {"id": 2, "name": '水果', "parent": 0},
        {"id": 3, "name": '家用电器', "parent": 1},
        {"id": 4, "name": '电吹风', "parent": 3},
        {"id": 5, "name": '电风扇', "parent": 3},
        {"id": 6, "name": '台灯', "parent": 3},
        {"id": 7, "name": '商用电器', "parent": 1},
        {"id": 9, "name": '苹果', "parent": 2},
        {"id": 10, "name": '大苹果', "parent": 9},
        {"id": 11, "name": '小苹果', "parent": 9},
        {"id": 12, "name": '打印机', "parent": 7},
    
        ]
    
        permission_tree = generate_tree(permission_source, 0)
    
        print(json.dumps(permission_tree, ensure_ascii=False,indent=4))
    
    
    result
    [
        {
            "id": 1,       
            "name": "电器",
            "parent": 0,   
            "child": [
                {
                    "id": 3,
                    "name": "家用电器",
                    "parent": 1,
                    "child": [
                        {
                            "id": 4,
                            "name": "电吹风",
                            "parent": 3,
                            "child": []
                        },
                        {
                            "id": 5,
                            "name": "电风扇",
                            "parent": 3,
                            "child": []
                        },
                        {
                            "id": 6,
                            "name": "台灯",
                            "parent": 3,
                            "child": []
                        }
                    ]
                },
                {
                    "id": 7,
                    "name": "商用电器",
                    "parent": 1,
                    "child": [
                        {
                            "id": 12,
                            "name": "打印机",
                            "parent": 7,
                            "child": []
                        }
                    ]
                }
            ]
        },
        {
            "id": 2,
            "name": "水果",
            "parent": 0,
            "child": [
                {
                    "id": 9,
                    "name": "苹果",
                    "parent": 2,
                    "child": [
                        {
                            "id": 10,
                            "name": "大苹果",
                            "parent": 9,
                            "child": []
                        },
                        {
                            "id": 11,
                            "name": "小苹果",
                            "parent": 9,
                            "child": []
                        }
                    ]
                }
            ]
        }
    ]
    

    相关文章

      网友评论

          本文标题:无限极分类

          本文链接:https://www.haomeiwen.com/subject/spscsltx.html