python列表两个内嵌如何拆开_Python内嵌列表格式化

stackoverflow上的一个问题:

把下面的格式:[{

"id": 1,

"title": "node1",

"parent": "null"},{

"id": 2,

"title": "node2",

"parent": 1},{

"id": 3,

"title": "node3",

"parent": 1},{

"id": 4,

"title": "node4",

"parent": 2},{

"id": 5,

"title": "node5",

"parent": 2}]

更改为:[{

'id':1,

'title':'node1',

'childs':[

{

'id':2,

'title':'node2'

'childs':[

{

'id':4,

'title':'node4',

'childs': []

},

{

'id':5,

'title':'node5',

'childs': []

}

]

},

{

'id':3,

'title':'node3'

'childs':[]

}

]

}]

相关代码:(主要用了python对象的可变性,如dict,list都是可变的.这样对于数据的深度可以简化)result, t = [], {}

for i in k:    # k 为上面的数据, k 建议按 parent 排序一下

i['childs'] = []

if i['parent'] == 'null':

del i['parent']

result.append(i)

t[1] = result[0]

else:

t[i['parent']]['childs'].append(i)

t[i['id']] = t[i['parent']]['childs'][-1]

del t[i['parent']]['childs'][-1]['parent']

print result

结果:Z:\DOWNLOAD>k.py

[{'childs': [{'childs': [{'childs': [], 'id': 4, 'title': 'node4'}, {'childs': [

], 'id': 5, 'title': 'node5'}], 'id': 2, 'title': 'node2'}, {'childs': [], 'id':

3, 'title': 'node3'}], 'id': 1, 'title': 'node1'}]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值