【发布时间】:2019-07-16 10:09:00
【问题描述】:
我有一个字典列表,每个字典中有一个日期(datetime.datetime 对象),但在某些情况下它与键 "created_at" 相关联,在其他情况下与 "notification_timestamp" 相关联。
data = [{'foo':'bar', 'created_at':'00:15:20 04/05/2019'},{'foo2':'bar2', 'notification_timestamp':'00:35:20 04/05/2019'}]
我知道我可以只重命名键,但我需要一个高效/可扩展的解决方案来按这些键排序此列表。
我尝试过data = data.sort(key=operator.itemgetter("created_at", "notification_timestamp"), reverse=True),但它会抛出以下错误:
Exception Type: KeyError at /v1/my_script
Exception Value: 'notification_timestamp'
大概是因为不是所有的字典都有这个键。
我确定我的变量的数据类型,这个脚本的输出
for d in data:
if d.get("created_at", False):
print("CREATED AT TYPE: ", type(d.get("created_at")))
if d.get("notification_timestamp", False):
print("notification_timestamp TYPE: ", type(d.get("notification_timestamp")))
是
CREATED AT TYPE: <class 'datetime.datetime'>
notification_timestamp TYPE: <class 'datetime.datetime'>
感谢所有帮助
【问题讨论】:
标签: python sorting dictionary