gpt4 book ai didi

Python:将日期与字典列表中的日期进行比较

转载 作者:行者123 更新时间:2023-12-01 03:35:55 25 4
gpt4 key购买 nike

我有一个(大)词典列表,其中包含从奇妙 list 中提取的任务及其元数据。该列表的名称是tasktotal。列表中的这些字典如下所示:

{'due_date': '2016-11-30', 'created_by_request_id': 'RqID:RqIDKey', 'type': 'task', 'title': 'This is a task ', 'completed': False, 'id': MYID, 'created_by_id': MYID, 'created_at': '2016-10-14T11:11:52.916Z', 'revision': 2, 'starred': False, 'list_id': MYLISTID}

我想使用datetime将“due_date”值与当前日期进行比较:

date_today = datetime.datetime.now().date()

如果字典今天或之前的任何一天到期,我想返回该字典中的“标题”值。我认为最简单的方法是创建一个包含今天到期的所有条目的新字典,然后检索它们的“标题”值。所以我做了这个搜索功能:

def search(i):
return [element for element in i if element[datetime.strptime('due_date')] >= date_today]

但是,当我在 tasktotal 列表上运行此搜索时,我没有得到任何返回。

print(search(tasktotal))

[]
Process finished with exit code 0

我不明白我在这里做错了什么?或者是否有另一种更有效的方法来检索我需要的值?

编辑1:

当我尝试@Peter 的解决方案时,出现此错误:

    return [element['title'] for element in i if date_convert(element['due_date']) >= current_time]
KeyError: 'due_date

编辑2:当我切换括号时,就像 @James K 和 @RichSmith 建议的那样,我收到此错误

    return [element for element in i if datetime.strptime(element['due_date'], "%Y-%m-%d") >= date_today]
TypeError: can't compare datetime.datetime to datetime.date

最佳答案

括号错误

element[datetime.strptime('due_date')]

这会尝试将字符串“due_date”转换为时间,然后在字典中查找它。相反,您需要查找日期,然后将其转换。

datetime.strptime(element['due_date'], "%Y-%m-%d").date() 

关于Python:将日期与字典列表中的日期进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40396372/

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