权限列表(包字典)递归成树状结构

权限列表(包字典)递归成树状结构

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},
           ]
    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': []
}]		
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值