gpt4 book ai didi

python - 按表示相同值的多个键对字典进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 20:37:44 34 4
gpt4 key购买 nike

我有一个字典列表,每个字典中都有一个日期(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"),verse=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'>

感谢所有帮助

最佳答案

感谢 @Rakesh 向我展示了在这种情况下使用 x.get() 的可能性,我找到了解决方案:

data.sort(key=lambda x: x.get("created_at", x.get("notification_timestamp", None)),verse=True)

关于python - 按表示相同值的多个键对字典进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57054869/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com