我有一个dicts列表:
[{"id" : "2016_a",
"data_1" : 106,
"data_2" : 200},
{"id" : "2015_a",
"data_1" : 110,
"data_2" : 105}
]
我希望获取id
记录,并使用它创建一个唯一的唯一的词典列表,以便:
[{"data_1_2016_a" : 106,
"data_1_2015_a" : 110,
"data_2_2016_a" : 200,
"data_2_2015_a" : : 105}]
如何将字符串id
附加到其他记录的key
值?
答案 0 :(得分:4)
循环并分配很简单。
result = {}
for elem in data:
for k, v in elem.items():
if k != 'id':
result['{}_{}'.format(elem['id'], k)] = v
答案 1 :(得分:2)
您只需使用词典理解:
result = {dic['id']+'_'+k:v for dic in dictionaries
for k,v in dic.items() if k != 'id'}
您可以(可能)通过在内部使用生成器来提高效率:
result = {dicid+k:v for dic,dicid in ((_dic,_dic['id']+'_') for _dic in dictionaries)
for k,v in dic.items() if k != 'id'}
这里我们保存查找(dic['id']
),我们还必须只下一次下划线。这导致:
>>> {dicid+k:v for dic,dicid in ((_dic,_dic['id']+'_') for _dic in dictionaries)
... for k,v in dic.items() if k != 'id'}
{'2016_a_data_1': 106, '2015_a_data_2': 105, '2016_a_data_2': 200, '2015_a_data_1': 110}