1、根据子级id ,将子级权限插入到响应父级权限下
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 tree
if __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},
{'per_id': 11, 'per_name': '员工画像', 'per_addr': '无', 'per_moudel_id': 1},
{'per_id': 12, 'per_name': '效能对比分析', 'per_addr': '/areaChart', 'per_moudel_id': 1},
{'per_id': 13, 'per_name': '设置', 'per_addr': '无', 'per_moudel_id': 1},
{'per_id': 14, 'per_name': '服务量预测', 'per_addr': '/costumeDesigner', 'per_moudel_id': 2},
{'per_id': 15, 'per_name': '运营监控中心', 'per_addr': '无', 'per_moudel_id': 2},]
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': []
}]