对结构数据递归生成树形组织结构

先查看关键代码:

def regular_dep1(dep_list,depid):
    """
    传入的数据 格式 符合BOOTSTAP JSON 格式
    :param dep_list:
    :return:返回一个符合 bootstrap数据要求的数组
    """
    result = {'text': '1', 'nodes': []}

    for it in dep_list:
        if it['id'] == depid:
            result['text'] = it['name']

    for item in dep_list:
        if item['parentid'] == depid:
            """用来判断有没子部门"""
            obj = {'text': item['name'], 'nodes': []}
            for item2 in dep_list:
                """对子部门元素进行递归 查询出子部门"""
                if item2['parentid'] == item['id']:
                    obj['nodes'].append(regular_dep1(dep_list, item2['id'])) # 这里注意看清楚传入的参数 是对应子元素的ID
            result['nodes'].append(obj)
    """最后返回JSON 格式字符串的字典"""
    return result

要求:有些前端数据 传入的格式类似 这种{'text':'parentName','nodes':['test':'nodeName','nodes':[....]]} 格式的数据可以使用上面的方法

dep_list : 从数据库中查询出来的 带有 id 与parentid 的结构数据

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值