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