gpt4 book ai didi

python - GAE Python : Search by Date using dateutil. 解析器

转载 作者:太空宇宙 更新时间:2023-11-04 06:09:36 24 4
gpt4 key购买 nike

我正在实现自由文本搜索功能。用户可以输入任何关键字,例如日期字符串..

我希望它灵活:“2013 年 10 月”、“2013 年 10 月”、“2013 年 10 月”等都应该被识别。并且由于 App Engine 搜索 API 仅将日期格式识别为 YYYY-MM-DD,如果我得到“2013 年 10 月”,我需要将其转换为“search_date >= 2013-10-01 和 search_date <= 2013-10-31” .

我设法使用 dateutil.parser.parse(search_date_str),但问题是如果缺少任何日期组件,它将使用今天的数据。例如“2013 年 10 月”将被解析为“2013-10-27”。在那种情况下,我无法判断用户输入的是“2013 年 10 月 27 日”还是“2013 年 10 月”。按年份搜索也是如此...如果用户只想搜索“2013”​​,我应该可以将其翻译成 [2013-01-01、2013-12-31] 而不是“2013-10-27”

我不确定我应该怎么做?我在想是否需要任何正则表达式(我真的很差......)

最佳答案

看看内置的datetime 模块(http://docs.python.org/2/library/datetime.html),特别是datetime.strptime 函数:(http://docs.python.org/2/library/datetime.html#strftime-strptime-behavior)。这允许您从具有各种不同格式的字符串创建 datetime 对象。例如,您可以这样做:

theString = "2013-10"
theDate = datetime.strptime(theString, "%Y-%m")
theString2 = "2013 Oct"
theDate2 = datetime.strptime(theString, "%Y %b")

和其他各种组合。如果您限制允许的输入格式会容易得多,但无论如何这应该会让您的生活更轻松。您不需要编写任何正则表达式,因为 datetime 模块已经处理了这个。

关于python - GAE Python : Search by Date using dateutil. 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19617287/

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