美文网首页
无限极分类

无限极分类

作者: 垃圾桶边的狗 | 来源:发表于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": []
                    }
                ]
            }
        ]
    }
]

相关文章

  • php实现无限极分类

    一、两种实现php无限极分类 设置原始数据 1. 使用php递归实现php无限极分类 通过foreach循环实现无...

  • PHP 无限极分类

    概述   在实际工作中,经常要用到无限极分类。如导航表等等。到网上一搜php无限极分类,很多,但好多都是一个,并且...

  • 无限极分类原理与实现

    前言 无限极分类是我很久前学到知识,今天在做一个项目时,发现对其概念有点模糊,所以今天就来说说无限极分类。 首先来...

  • 无限极分类

    result

  • laravel无限级分类

    用laravel 做无限极分类;找了很多资料;假大空;有很多都是残缺的;而且达不到预期;无法做到无限极;今天分享下...

  • 树状无限极分类

    树状无限极分类 提供2种方式 function getTree($list,$id=0,$level=0) { s...

  • PHP无限极分类

    要了解这两种方式具体内容,可以去查看这篇博客: 左右值无限分类实现算法 本文主要提供两种将符合无限极分类格式的二维...

  • php无限极分类

    递归--无限极分类 递归--子孙树转二维数组 可以配合Nestable使用 递归--获取树所有叶子节点 结果1 结...

  • PHP 无限极分类

    1.循环迭代实现无限极分类 输出结果如下: 分析:这个算法利用了循环迭代,将线性结构按照父子关系以树形结构输出,算...

  • Goland - 无限极分类

    输出结果

网友评论

      本文标题:无限极分类

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