如何按相对日期值对字典列表进行排序?

-1 python sorting dictionary list

我的代码是:

a = {"key1": 5 , "key2": "8 hours ago", "key3": 2}
b = {"key1": 7 , "key2": "42 hours ago", "key3": 9}
c = {"key1": 6 , "key2": "1 hour ago", "key3": 1}
undecorated = [a, b, c]

undecorated.sort(key=operator.itemgetter('key2'))
Run Code Online (Sandbox Code Playgroud)

结果是:

[
{"key1": 6 , "key2": "1 hour ago", "key3": 1}
{"key1": 7 , "key2": "42 hours ago", "key3": 9}
{"key1": 5 , "key2": "8 hours ago", "key3": 2}
]
Run Code Online (Sandbox Code Playgroud)

但结果需要:

[
{"key1": 6 , "key2": "1 hour ago", "key3": 1}
{"key1": 5 , "key2": "8 hours ago", "key3": 2}
{"key1": 7 , "key2": "42 hours ago", "key3": 9}
]
Run Code Online (Sandbox Code Playgroud)

sch*_*ggl 8

如果值key2与此处显示的一样正常,您可以执行以下操作:

undecorated.sort(key=lambda d: int(d['key2'].split()[0]))
Run Code Online (Sandbox Code Playgroud)