如何重新排序字典的键?

问题描述 投票:0回答:3

我在列表中有多个词典。我想用自定义键对字典进行排序。就我而言,我想使用

Date
键对其进行排序。也就是说,我的意思是将
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
   }
...
python python-3.x dictionary ordereddictionary
3个回答
9
投票

如果您使用的是保留密钥插入顺序的 Python 版本(即 3.7 或更新版本),您可以这样做:

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

3
投票

我相信你可以使用 OrderedDict 的 move_to_end 来做到这一点。

dict = OrderedDict.fromkeys("qwerty")
dict.move_to_end("t", last=False)
"".join(dict.keys())
"tqwery"

-4
投票

你不能对字典进行排序,因为字典没有顺序。

© www.soinside.com 2019 - 2024. All rights reserved.