首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日期解析器抛出regex._regex_core.error

日期解析器抛出regex._regex_core.error
EN

Stack Overflow用户
提问于 2022-03-16 11:58:06
回答 3查看 1.2K关注 0票数 4

我试图运行一个非常基本的脚本:

代码语言:javascript
复制
import dateparser

dateparser.parse('12/12/12')

但我总是犯同样的错误

代码语言:javascript
复制
Traceback (most recent call last):
  File ".../app/test.py", line 3, in <module>
    dateparser.parse('12/12/12')
  File ".../lib/python3.9/site-packages/dateparser/conf.py", line 92, in wrapper
    return f(*args, **kwargs)
  File ".../lib/python3.9/site-packages/dateparser/__init__.py", line 61, in parse
    data = parser.get_date_data(date_string, date_formats)
  File ".../lib/python3.9/site-packages/dateparser/date.py", line 428, in get_date_data
    parsed_date = _DateLocaleParser.parse(
  File ".../lib/python3.9/site-packages/dateparser/date.py", line 178, in parse
    return instance._parse()
  File ".../lib/python3.9/site-packages/dateparser/date.py", line 182, in _parse
    date_data = self._parsers[parser_name]()
  File ".../lib/python3.9/site-packages/dateparser/date.py", line 196, in _try_freshness_parser
    return freshness_date_parser.get_date_data(self._get_translated_date(), self._settings)
  File ".../lib/python3.9/site-packages/dateparser/date.py", line 234, in _get_translated_date
    self._translated_date = self.locale.translate(
  File ".../lib/python3.9/site-packages/dateparser/languages/locale.py", line 131, in translate
    relative_translations = self._get_relative_translations(settings=settings)
  File ".../lib/python3.9/site-packages/dateparser/languages/locale.py", line 158, in _get_relative_translations
    self._generate_relative_translations(normalize=True))
  File ".../lib/python3.9/site-packages/dateparser/languages/locale.py", line 172, in _generate_relative_translations
    pattern = DIGIT_GROUP_PATTERN.sub(r'?P<n>\d+', pattern)
  File ".../lib/python3.9/site-packages/regex/regex.py", line 700, in _compile_replacement_helper
    is_group, items = _compile_replacement(source, pattern, is_unicode)
  File ".../lib/python3.9/site-packages/regex/_regex_core.py", line 1736, in _compile_replacement
    raise error("bad escape \\%s" % ch, source.string, source.pos)
regex._regex_core.error: bad escape \d at position 7

它是否是日期解析器和python之间的兼容版本?我使用的是日期解析器1.1和python3.9,而dateparsers的文档显示它接受这个python。

EN

回答 3

Stack Overflow用户

发布于 2022-03-16 16:45:26

我们的团队刚刚经历了这个问题,使我们的生产服务器崩溃了。昨晚,dateparser的依赖项之一,regex 已更新到版本2022.3.15。数据解析器安装regex,但没有冷冻版本。最新版本的regex似乎不喜欢date解析器正在做的事情,这导致了您看到的错误。通过在日期解析器之前安装regex==2022.3.2,这完全解决了我们的问题。

票数 9
EN

Stack Overflow用户

发布于 2022-03-16 13:21:17

我不知道没有dateutil我是怎么过日子的!

试试这个:

python -m pip install python-dateutil

或者康达锻造或者其他什么的(它不在标准里),然后:

代码语言:javascript
复制
>>> from dateutil.parser import parse as date_parse
>>> date_parse('12/12/12')
datetime.datetime(2012, 12, 12, 0, 0)

如果您有pandas,则dateutil已作为依赖项安装。

票数 1
EN

Stack Overflow用户

发布于 2022-03-16 13:14:12

由于您正在提供一种尴尬的格式,所以我会考虑为其设置格式。

代码语言:javascript
复制
dateparser.parse('12/12/1212', date_formats=['%m/%d/%Y'])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71496687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档