如何重新排序字典的键?
How to reorder the keys of a dictionary?
我在列表中有多个词典。我想用自定义键对字典进行排序。就我而言,我想使用 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
}
...
您无法对字典进行排序,因为字典没有顺序。
如果您使用的是 Python3.7 或更高版本,您可以这样做:
print([{"Date": di["Date"], **di} for di in my_list])
[
{
'Date': '2020-07-01',
'AmazonS3': 6.54,
'AmazonEC2': 27.55,
'AmazonCloudWatch': 0.51
},
{
'Date': '2020-07-02',
'AmazonEC2': 27.8
},
{
'Date': '2020-07-03',
'AmazonElastiCache': 0.01,
'AmazonEC2': 35.34
}
]
我相信你可以使用OrderedDict's move_to_end to do this.
dict = OrderedDict.fromkeys("qwerty")
dict.move_to_end("t", last=False)
"".join(dict.keys())
"tqwery"
我在列表中有多个词典。我想用自定义键对字典进行排序。就我而言,我想使用 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
}
...
您无法对字典进行排序,因为字典没有顺序。
如果您使用的是 Python3.7 或更高版本,您可以这样做:
print([{"Date": di["Date"], **di} for di in my_list])
[ { 'Date': '2020-07-01', 'AmazonS3': 6.54, 'AmazonEC2': 27.55, 'AmazonCloudWatch': 0.51 }, { 'Date': '2020-07-02', 'AmazonEC2': 27.8 }, { 'Date': '2020-07-03', 'AmazonElastiCache': 0.01, 'AmazonEC2': 35.34 } ]
我相信你可以使用OrderedDict's move_to_end to do this.
dict = OrderedDict.fromkeys("qwerty")
dict.move_to_end("t", last=False)
"".join(dict.keys())
"tqwery"