首页 > 解决方案 > 如何重新排序字典的键?

问题描述

我在列表中有多个字典。我想用自定义键对字典进行排序。就我而言,我想使用Datekey 对其进行排序。我的意思是把Date钥匙移到第一个位置。Date使用键对字典进行排序的有效方法是什么?

PS:我不想按Date.

[
   {
      
      "AmazonS3":6.54,
      "AmazonEC2":27.55,
      "AmazonCloudWatch":0.51,
      "Date":"2020-07-01"
   },
   {
      "AmazonEC2":27.8,
      "Date":"2020-07-02"
   },
   {
      "AmazonElastiCache":0.01,
      "AmazonEC2":35.34,
      "Date":"2020-07-03"
   }
]

预期输出:

...
   {
      "Date":"2020-07-03",
      "AmazonElastiCache":0.01,
      "AmazonEC2":35.34
   }
...

标签: pythonpython-3.xdictionaryordereddictionary

解决方案


如果您使用的是 Python3.6 或更高版本,您可以这样做:

print([{"Date": di["Date"], **di} for di in my_list])
[
  {
     '日期': '2020-07-01',
     “亚马逊S3”:6.54,
     “亚马逊EC2”:27.55,
     “亚马逊云观察”:0.51
  },
  {
     '日期': '2020-07-02',
     “亚马逊EC2”:27.8
  },
  {
     '日期': '2020-07-03',
     'AmazonElastiCache': 0.01,  
     “亚马逊EC2”:35.34
  }
]

推荐阅读