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 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}, {'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': []}]