Python-在dictionary/json值中添加多个值

Python-在dictionary/json值中添加多个值,python,json,Python,Json,我正在构建一个python应用程序,它接收以下格式的REST响应: [ { 'metric': 'pass_status', 'history': [ { 'date': '2019-02-20T10:26:52+0000', 'value': 'OK' }, { 'date': '2019-03-13T11:37:39+0000', 'value': 'FAIL'

我正在构建一个
python
应用程序,它接收以下格式的REST响应:

[
  {
    'metric': 'pass_status',
    'history': [
      {
        'date': '2019-02-20T10:26:52+0000',
        'value': 'OK'
      },
      {
        'date': '2019-03-13T11:37:39+0000',
        'value': 'FAIL'
      },
      {
        'date': '2019-03-13T12:00:57+0000',
        'value': 'OK'
      }
    ]
  },
  {
    'metric': 'bugs',
    'history': [
      {
        'date': '2019-02-20T10:26:52+0000',
        'value': '1'
      },
      {
        'date': '2019-03-13T11:37:39+0000',
        'value': '6'
      },
      {
        'date': '2019-03-13T12:00:57+0000',
        'value': '2'
      }
    ]
  },
  {
    'metric': 'code_smells',
    'history': [
      {
        'date': '2019-02-20T10:26:52+0000',
        'value': '0'
      },
      {
        'date': '2019-03-13T11:37:39+0000',
        'value': '1'
      },
      {
        'date': '2019-03-13T12:00:57+0000',
        'value': '2'
      }
    ]
  }
]
您可以看到每个指标的日期都是相同的。 我想按日期整理此数据,即我的结果
json/dictionary
应该如下所示:

[
    '2019-02-20T10:26:52+0000' : {
        'pass_status' : 'OK',
        'bugs' : '1',
        'code_smells' : '0'
    },
    '2019-03-13T11:37:39+0000' : {
        'pass_status' : 'FAIL',
        'bugs' : '6',
        'code_smells' : '1'
    },
    '2019-03-13T11:37:39+0000' : {
        'pass_status' : 'OK',
        'bugs' : '2',
        'code_smells' : '2'
    }
]
建议的方法是什么


谢谢

我尝试了一些
itertools.groupby
魔术,但结果变成一团乱麻

也许迭代+
defaultdict
只是让它保持简单

像这样:

从集合导入defaultdict
结果=默认dict(dict)
对于数据中的度量值:
metric\u name=metric\u dict['metric']
对于公制目录[‘历史记录’]中的条目:
结果[entry['date'][metric_name]=entry['value']
打印(记录(结果))
或提供完整的数据示例:

数据=[
{
'指标':'通过状态',
"历史":[
{
“日期”:“2019-02-20T10:26:52+0000”,
“值”:“确定”
},
{
“日期”:“2019-03-13T11:37:39+0000”,
“值”:“失败”
},
{
“日期”:“2019-03-13T12:00:57+0000”,
“值”:“确定”
}
]
},
{
'度量':'错误',
"历史":[
{
“日期”:“2019-02-20T10:26:52+0000”,
“值”:“1”
},
{
“日期”:“2019-03-13T11:37:39+0000”,
“值”:“6”
},
{
“日期”:“2019-03-13T12:00:57+0000”,
“值”:“2”
}
]
},
{
“度量”:“代码”,
"历史":[
{
“日期”:“2019-02-20T10:26:52+0000”,
“值”:“0”
},
{
“日期”:“2019-03-13T11:37:39+0000”,
“值”:“1”
},
{
“日期”:“2019-03-13T12:00:57+0000”,
“值”:“2”
}
]
}
]
从集合导入defaultdict
结果=默认dict(dict)
对于数据中的度量值:
metric\u name=metric\u dict['metric']
对于公制目录[‘历史记录’]中的条目:
结果[entry['date'][metric_name]=entry['value']
打印(结果)