我在python中有以下dicts列表。
[
{
"US": {
"Intial0": 12.515
},
{
"GE": {
"Intial0": 11.861
}
},
{
"US": {
"Final0": 81.159
}
},
{
"GE": {
"Final0": 12.9835
}
}
]
我希望最终的dicts列表为
[{"US": {"Initial0":12.515, "Final0": 81.159}}, {"GE": {"Initial0": 11.861, "Final0": 12.9835}}]
我很长一段时间都在努力解决这个问题。有什么帮助吗?
答案 0 :(得分:1)
您可以使用Python defaultdict
,如下所示:
from collections import defaultdict
lod = [
{"US": {"Intial0": 12.515}},
{"GE": {"Intial0": 11.861}},
{"US": {"Final0": 81.159}},
{"GE": {"Final0": 12.9835}}]
output = defaultdict(dict)
for d in lod:
output[d.keys()[0]].update(d.values()[0])
print output
对于给出的数据,这将显示以下内容:
defaultdict(<type 'dict'>, {'GE': {'Intial0': 11.861, 'Final0': 12.9835}, 'US': {'Intial0': 12.515, 'Final0': 81.159}})
或者你可以将它转换回标准的Python字典print dict(output)
给出:
{'GE': {'Intial0': 11.861, 'Final0': 12.9835}, 'US': {'Intial0': 12.515, 'Final0': 81.159}}
答案 1 :(得分:0)
list1 = [{&#34; US&#34;:{&#34; Intial0&#34;:12.515}},{&#34; GE&#34;:{&#34; Intial0&#34;: 11.861}},{&#34; US&#34;:{&#34; Final0&#34;:81.159}},{&#34; GE&#34;:{&#34; Final0&#34;:12.9835} }]
dict_US = {} dict_GE = {} 对于list1中的dict_x: 如果dict_x.keys()== [&#39; US&#39;]: dict_US.update(dict_x [&#34; US&#34;]) 如果dict_x.keys()== [&#39; GE&#39;]: dict_GE.update(dict_x [&#34; GE&#34;]) list2中= [{&#34; US&#34;:dict_US},{&#34; GE&#34;:dict_GE}] print list2