python生成指定长度的列表_python 生成特定列表格式

代碼:

def aa2bb(aa):

bb = []

proj_id_map = {}

for ad in aa:

proj_id = ad['projectname_id']

child = {'id': ad['id'], 'text': ad['ip']}

if proj_id not in proj_id_map:

bd = {

'projectname__pname': ad['projectname__pname'],

'projectname_id': ad['projectname_id'],

'children': [child]

}

bb.append(bd)

proj_id_map[proj_id] = bd

else:

bd = proj_id_map[proj_id]

bd['children'].append(child)

return bb

測試:

from pprint import pprint

aa = [

{'ip': '192.168.1.1', 'projectname__pname': 'hh', 'id': 1, 'projectname_id': 1},

{'ip': '192.168.3.2', 'projectname__pname': 'hh', 'id': 2, 'projectname_id': 1},

{'ip': '192.168.22.3', 'projectname__pname': 'qm', 'id': 3, 'projectname_id': 2},

{'ip': '192.168.5.3', 'projectname__pname': 'ssh', 'id':4, 'projectname_id': 3}

]

pprint(aa2bb(aa))

結果:

[{'children': [{'id': 1, 'text': '192.168.1.1'},

{'id': 2, 'text': '192.168.3.2'}],

'projectname__pname': 'hh',

'projectname_id': 1},

{'children': [{'id': 3, 'text': '192.168.22.3'}],

'projectname__pname': 'qm',

'projectname_id': 2},

{'children': [{'id': 4, 'text': '192.168.5.3'}],

'projectname__pname': 'ssh',

'projectname_id': 3}]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值