权限列表(包字典)递归成树状结构
def per_data ( permission_list, parent_id) : tree = [ ] for per in permission_list: if per[ 'per_moudel_id' ] == parent_id: per[ 'children' ] = per_data( permission_list, per[ 'per_id' ] ) tree. append( per) return treeif __name__ == '__main__' : dict = [ { 'per_id' : 1 , 'per_name' : '员工关怀' , 'per_addr' : '无' , 'per_moudel_id' : None } , { 'per_id' : 2 , 'per_name' : '智能服务运筹' , 'per_addr' : '/' , 'per_moudel_id' : None } , { 'per_id' : 3 , 'per_name' : '数据中台' , 'per_addr' : '/' , 'per_moudel_id' : None } , { 'per_id' : 4 , 'per_name' : '结算平台' , 'per_addr' : '/' , 'per_moudel_id' : None } , { 'per_id' : 5 , 'per_name' : '微信客服统计管理平台' , 'per_addr' : '/' , 'per_moudel_id' : None } , { 'per_id' : 6 , 'per_name' : 'TV管理平台' , 'per_addr' : '/' , 'per_moudel_id' : None } , { 'per_id' : 7 , 'per_name' : '权限管理' , 'per_addr' : '/' , 'per_moudel_id' : None } , { 'per_id' : 8 , 'per_name' : '首页' , 'per_addr' : '/homePage' , 'per_moudel_id' : 1 } , { 'per_id' : 9 , 'per_name' : '人员信息管理' , 'per_addr' : '/' , 'per_moudel_id' : 1 } , { 'per_id' : 10 , 'per_name' : '指标异常预警' , 'per_addr' : '无' , 'per_moudel_id' : 1 } , ] print ( per_data( dict , None ) )
[ { 'per_id' : 1 , 'per_name' : '员工关怀' , 'per_addr' : '无' , 'per_moudel_id' : None , 'children' : [ { 'per_id' : 8 , 'per_name' : '首页' , 'per_addr' : '/homePage' , 'per_moudel_id' : 1 , 'children' : [ ] } , { 'per_id' : 9 , 'per_name' : '人员信息管理' , 'per_addr' : '/' , 'per_moudel_id' : 1 , 'children' : [ ] } , { 'per_id' : 10 , 'per_name' : '指标异常预警' , 'per_addr' : '无' , 'per_moudel_id' : 1 , 'children' : [ ] } , { 'per_id' : 11 , 'per_name' : '员工画像' , 'per_addr' : '无' , 'per_moudel_id' : 1 , 'children' : [ ] } , { 'per_id' : 12 , 'per_name' : '效能对比分析' , 'per_addr' : '/areaChart' , 'per_moudel_id' : 1 , 'children' : [ ] } , { 'per_id' : 13 , 'per_name' : '设置' , 'per_addr' : '无' , 'per_moudel_id' : 1 , 'children' : [ ] } ]
} ,
{ 'per_id' : 2 , 'per_name' : '智能服务运筹' , 'per_addr' : '/' , 'per_moudel_id' : None , 'children' : [ { 'per_id' : 14 , 'per_name' : '服务量预测' , 'per_addr' : '/costumeDesigner' , 'per_moudel_id' : 2 , 'children' : [ ] } , { 'per_id' : 15 , 'per_name' : '运营监控中心' , 'per_addr' : '无' , 'per_moudel_id' : 2 , 'children' : [ ] } ]
} ,
{ 'per_id' : 3 , 'per_name' : '数据中台' , 'per_addr' : '/' , 'per_moudel_id' : None , 'children' : [ ]
} ,
{ 'per_id' : 4 , 'per_name' : '结算平台' , 'per_addr' : '/' , 'per_moudel_id' : None , 'children' : [ ] } ,
{ 'per_id' : 5 , 'per_name' : '微信客服统计管理平台' , 'per_addr' : '/' , 'per_moudel_id' : None , 'children' : [ ]
} ,
{ 'per_id' : 6 , 'per_name' : 'TV管理平台' , 'per_addr' : '/' , 'per_moudel_id' : None , 'children' : [ ]
} ,
{ 'per_id' : 7 , 'per_name' : '权限管理' , 'per_addr' : '/' , 'per_moudel_id' : None , 'children' : [ ]
} ]