1
尋找最有效的方式,而不循環...... 鑑於以下的Python(2.7)解釋:拼合字典,重複的值
l = [{
"General": {
"Iteration": {
"CATID": 74470
}
},
"Return": {
"Effectiveness": {
"Metrics": [{
"Volume": 1004287.8947531971,
"BusinessMetricID": 1,
"ImpactScore": 0.032579772546071015,
"GrossMargin": 10042878.94753197,
"Revenue": 20085757.89506394
},
{
"Volume": 2678101.0526751927,
"BusinessMetricID": 2,
"ImpactScore": 0.08687939345618939,
"GrossMargin": 6695252.631687982,
"Revenue": 13390505.263375964
}]
}
}
},
{
"General": {
"Iteration": {
"CATID": 74471
}
},
"Return": {
"Effectiveness": {
"Metrics": [{
"Volume": 1004287.8947531971,
"BusinessMetricID": 1,
"ImpactScore": 0.032579772546071015,
"GrossMargin": 10042878.94753197,
"Revenue": 20085757.89506394
},
{
"Volume": 2678101.0526751927,
"BusinessMetricID": 2,
"ImpactScore": 0.08687939345618939,
"GrossMargin": 6695252.631687982,
"Revenue": 13390505.263375964
}]
}
}
}]
我試圖同時加入了扁平化列表的指標列表CATID財產得到下面的字典清單
[{
"CATID": 74470,
"Volume": 35399.19921217802,
"BusinessMetricID": 1,
"ImpactScore": 0.015,
"GrossMargin": 353991.9921217802,
"Revenue": 707983.9842435603
},
{
"CATID": 74470,
"Volume": 94397.86456580806,
"BusinessMetricID": 2,
"ImpactScore": 0.04,
"GrossMargin": 235994.66141452017,
"Revenue": 471989.32282904035
},
{
"CATID": 74471,
"Volume": 35399.19921217802,
"BusinessMetricID": 1,
"ImpactScore": 0.015,
"GrossMargin": 353991.9921217802,
"Revenue": 707983.9842435603
},
{
"CATID": 74471,
"Volume": 94397.86456580806,
"BusinessMetricID": 2,
"ImpactScore": 0.04,
"GrossMargin": 235994.66141452017,
"Revenue": 471989.32282904035
}
]
什麼是最有效的方式來做到這一點?我試圖使用列表理解,但我找不到添加額外屬性的方法。 要簡單拼合,我使用的指標:
[item for sublist in [x['Return']['Effectiveness']['Metrics'] for x in l] for item in sublist]
這給了我:
[{
'Volume': 1004287.8947531971,
'BusinessMetricID': 1,
'ImpactScore': 0.032579772546071015,
'GrossMargin': 10042878.94753197,
'Revenue': 20085757.89506394
},
{
'Volume': 2678101.0526751927,
'BusinessMetricID': 2,
'ImpactScore': 0.08687939345618939,
'GrossMargin': 6695252.631687982,
'Revenue': 13390505.263375964
},
{
'Volume': 1004287.8947531971,
'BusinessMetricID': 1,
'ImpactScore': 0.032579772546071015,
'GrossMargin': 10042878.94753197,
'Revenue': 20085757.89506394
},
{
'Volume': 2678101.0526751927,
'BusinessMetricID': 2,
'ImpactScore': 0.08687939345618939,
'GrossMargin': 6695252.631687982,
'Revenue': 13390505.263375964
}]
謝謝。