Python3字典-按日期键排序



我有一个像这样的字典:

{
"dates":
{
"2020-01-01": "something 1",
"2019-04-20": "something 2",
"2020-03-15": "something 3",
"2019-12-31": "something 4"
}
}

让我们假设这个字典存储在变量名称my_dictionary下。

如何按日期my_dictionary["dates"]进行排序(最好是我可以自己定义的日期时间格式)?

谢谢

按日期排序,您可以将每个字符串转换为datetime对象并按这种方式排序:

from datetime import datetime
dates = {
"2020-01-01": "something 1",
"2019-04-20": "something 2",
"2020-03-15": "something 3",
"2019-12-31": "something 4",
}
dates = dict(
sorted(dates.items(), key=lambda item: datetime(*map(int, item[0].split("-"))))
)

然而,用你的日期格式的方式,你可以正常排序没有问题,因此@Axe319的解决方案在评论工作完美:

dates = {
"2020-01-01": "something 1",
"2019-04-20": "something 2",
"2020-03-15": "something 3",
"2019-12-31": "something 4",
}
dates = dict(sorted(dates.items()))

您可以使用以下代码:

d={
"dates":
{
"2020-01-01": "something 1",
"2019-04-20": "something 2",
"2020-03-15": "something 3",
"2019-12-31": "something 4"
}
}
for w in sorted(d, key=d.get, reverse=False):
print(d[w])
inv_map = {v: k for k, v in d[w].items()}
print(inv_map)
for w in sorted(inv_map, key=inv_map.get, reverse=True):
print(inv_map[w])

输出:

{'2020-01-01': 'something 1', '2019-04-20': 'something 2', '2020-03-15': 'something 3', '2019-12-31': 'something 4'}
{'something 1': '2020-01-01', 'something 2': '2019-04-20', 'something 3': '2020-03-15', 'something 4': '2019-12-31'}
2020-03-15
2020-01-01
2019-12-31
2019-04-20

最新更新