当然可以按日期时间值对字典进行排序。你遇到的错误 exceptions.TypeError: 无法将datetime.datetime与unicode进行比较
是因为在字典中存在不同类型的值,导致无法直接进行比较。
sorted()
函数对其进行排序。datetime.datetime
是 Python 中用于表示日期和时间的类型。unicode
是 Python 2 中的字符串类型,在 Python 3 中对应 str
。为了避免类型不匹配的问题,可以在排序时指定一个键函数,该函数将确保所有值都是同一类型。
假设你有一个字典,其键为日期时间字符串,值为任意数据:
data = {
"2022-01-01T12:00:00": "value1",
"2021-12-31T12:00:00": "value2",
"2022-01-02T12:00:00": "value3"
}
你可以使用 datetime.datetime.strptime
将字符串转换为日期时间对象,然后进行排序:
from datetime import datetime
# 定义一个将字符串转换为 datetime 对象的函数
def parse_datetime(key):
return datetime.strptime(key, "%Y-%m-%dT%H:%M:%S")
# 使用 sorted 函数进行排序,指定 key 参数为 parse_datetime 函数
sorted_data = dict(sorted(data.items(), key=lambda item: parse_datetime(item[0])))
print(sorted_data)
{
'2021-12-31T12:00:00': 'value2',
'2022-01-01T12:00:00': 'value1',
'2022-01-02T12:00:00': 'value3'
}
通过这种方式,你可以有效地处理包含日期时间值的字典,并避免类型不匹配导致的错误。
领取专属 10元无门槛券
手把手带您无忧上云