You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3.x使用daterangeparser解析日期范围报错求助

解决daterangeparser解析日期范围时的ParseException问题

看起来你遇到的问题是因为daterangeparser默认不支持用**带空格的短横线(-)**作为日期范围的分隔符,它预期的分隔符是to、until这类关键词,所以在解析到你字符串里的-时触发了语法错误。

快速修复方案:修改分隔符为to

把你的日期字符串里的-替换成to,就能正常解析了,示例代码如下:

from daterangeparser import parse
c = '2018-03-10 to 2018-06-15'  # 替换分隔符为to
s, e = parse(c)
print(s, e)

运行这段代码应该会输出对应的开始和结束日期对象:

2018-03-10 00:00:00 2018-06-15 00:00:00

进阶方案:自定义解析规则支持-分隔符

如果你必须保留-作为分隔符,可以通过扩展daterangeparser的pyparsing语法来实现。具体做法是添加一个新的分隔符选项,示例代码如下:

from daterangeparser import parse, parser
# 向分隔符规则中添加带空格的短横线
parser.range_separator |= parser.pyparsing.Literal(' - ')
# 现在就可以解析带空格短横线的日期范围了
c = '2018-03-10 - 2018-06-15'
s, e = parse(c)
print(s, e)

这段代码修改了原解析器的分隔符规则,让它同时识别-作为范围分隔符,这样你的原始字符串就能正常解析了。

错误原因补充

你遇到的pyparsing.ParseException是因为解析器在处理到第8个字符(也就是第一个空格后的-)时,没有识别到它预期的语法元素(比如to或者其他默认支持的分隔符),所以抛出了错误。调整分隔符或者扩展解析规则就能解决这个问题。

内容的提问来源于stack exchange,提问作者user31735

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:02:54