首页 > 解决方案 > 在 python 列表中集成字典

问题描述

我的字典列表如下:

[
   {
      "name":"reach",
      "values":[
         {
            "value":0,
            "end_time":"2020-09-11T07:00:00+0000"
         },
         {
            "value":1,
            "end_time":"2020-09-12T07:00:00+0000"
         }
      ]
   },
   {
      "name":"impressions",
      "values":[
         {
            "value":0,
            "end_time":"2020-09-11T07:00:00+0000"
         },
         {
            "value":4,
            "end_time":"2020-09-12T07:00:00+0000"
         }
      ]
   },
   {
      "name":"reach",
      "values":[
         {
            "value":1,
            "end_time":"2020-09-13T07:00:00+0000"
         },
         {
            "value":2,
            "end_time":"2020-09-14T07:00:00+0000"
         }
      ]
   }
]

我想整合字典的值键,它们的名称键与以下相同:

[
   {
      "name":"reach",
      "values":[
         {
            "value":0,
            "end_time":"2020-09-11T07:00:00+0000"
         },
         {
            "value":1,
            "end_time":"2020-09-12T07:00:00+0000"
         },
        {
            "value":1,
            "end_time":"2020-09-13T07:00:00+0000"
         },
         {
            "value":2,
            "end_time":"2020-09-14T07:00:00+0000"
         }
      ]
   },
   {
      "name":"impressions",
      "values":[
         {
            "value":0,
            "end_time":"2020-09-11T07:00:00+0000"
         },
         {
            "value":4,
            "end_time":"2020-09-12T07:00:00+0000"
         }
      ]
   }
]

但我现在不知道。我怎样才能做到这一点?我是 Python 的初学者,可能不知道一些细节。PS:我想以最小的减速对大量数据执行此操作。

标签: pythonjsonpython-3.xlistdictionary

解决方案


您应该首先发布您的尝试,而不是要求某人这样做。然而:

new_data_dict = {}
for item in data:
    if item['name'] not in new_data_dict:
        new_data_dict[item['name']] = []
    new_data_dict[item['name']] += item['values']
new_data_list = [{'name': name, 'values': values} for name, value in new_data_dict.items()]

推荐阅读