在合并 python 函数的输出方面需要帮助

Need help in combining output of a python function

我有一个 python 函数的输出:

"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"
},

我想把上面的转换成{Sum of Duration, image_name}

这样的格式

例如输出:{3452+120+114+102, "metadata-validations-service"} 最终输出:{3788, "metadata-validations-service"}

我可以采取什么方法来实现这一点?

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'}

一种方法是使用 pandas:

import json
import pandas as pd
from pandas import json_normalize
data = json.dumps({
"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"
}]
})

file = json.loads(data)
df2 = json_normalize(file['top_duration'])

new_df = df2.groupby(['image_name'])['duration'].sum().reset_index()

输出:

                            image_name  duration
0       metadata-runtime-proxy-service       100
1         metadata-validations-service      3788
2  ohcm-designer-orchestration-service      7223
3            ohcm-metadata-dna-service       111