I have output to a python function:
"top_duration": [
{
"duration": 3752,
"image_name": "ohcm-designer-orchestration-service"
},
{
"duration": 3471,
"image_name": "ohcm-designer-orchestration-service"
},
{
"duration": 3452,
"image_name": "metadata-validations-service"
},
{
"duration": 120,
"image_name": "metadata-validations-service"
},
{
"duration": 114,
"image_name": "metadata-validations-service"
},
{
"duration": 111,
"image_name": "ohcm-metadata-dna-service"
},
{
"duration": 102,
"image_name": "metadata-validations-service"
},
{
"duration": 100,
"image_name": "metadata-runtime-proxy-service"
},
I want to convert the above into the format like {Sum of Duration, image_name}
For e.g. output: {3452+120+114+102, "metadata-validations-service"}
Final output: {3788, "metadata-validations-service"}
What approach can I take to achieve this?
>Solution :
from collections import defaultdict
dict_data = {"top_duration": [
{
"duration": 3752,
"image_name": "ohcm-designer-orchestration-service"
},
{
"duration": 3471,
"image_name": "ohcm-designer-orchestration-service"
},
{
"duration": 3452,
"image_name": "metadata-validations-service"
},
{
"duration": 120,
"image_name": "metadata-validations-service"
},
{
"duration": 114,
"image_name": "metadata-validations-service"
},
{
"duration": 111,
"image_name": "ohcm-metadata-dna-service"
},
{
"duration": 102,
"image_name": "metadata-validations-service"
},
{
"duration": 100,
"image_name": "metadata-runtime-proxy-service"
}]}
final_dict_data = defaultdict(int)
for item in dict_data['top_duration']:
final_dict_data[item['image_name']] += item['duration']
final_dict_data = {val:key for key,val in final_dict_data.items()}
{7223: 'ohcm-designer-orchestration-service',
3788: 'metadata-validations-service',
111: 'ohcm-metadata-dna-service',
100: 'metadata-runtime-proxy-service'}