gpt4 book ai didi

python - Arrow 成功解析了一些不符合默认模式的输入

转载 作者:太空宇宙 更新时间:2023-11-03 16:01:28 25 4
gpt4 key购买 nike

由于输入无效,箭头会引发ParserError:

>>> arrow.get('abc')
ParserError: Could not match input to any of [u'YYYY-MM-DD', u'YYYY/MM/DD', u'YYYY.MM.DD', u'YYYY-MM', u'YYYY/MM', u'YYYY.MM', u'YYYY', u'YYYY', u'YYYY'] on 'abc'
>>> arrow.get('09-10-201')
ParserError: Could not match input to any of [u'YYYY-MM-DD', u'YYYY/MM/DD', u'YYYY.MM.DD', u'YYYY-MM', u'YYYY/MM', u'YYYY.MM', u'YYYY', u'YYYY', u'YYYY'] on '09-10-201'

这显示了 arrow 在引发异常之前尝试过的所有匹配模式。但是,有时,即使输入与这些模式中的任何一个都不匹配,它也会默默地将其转换为对象:

>>> arrow.get('09-10-2017')
<Arrow [2017-01-01T00:00:00+00:00]> # Succeeds with incorrect date

这是通过我的系统区域设置提供的附加隐藏解析模式来解释的吗?如果是这样,为什么它会解析 2017 年并忽略 09 和 10?如果没有,为什么解析成功?

最佳答案

Arrow 使用正则表达式将给定字符串与日期格式进行匹配。

例如:

arrow.get('aaa2012-01-21aa')

被接受为输入

<Arrow [2012-01-21T00:00:00+00:00]>

因为它匹配格式YYYY-MM-DD它在内部被转换为 '(?P<YYYY>\d{4})-(?P<MM>\d{2})-(?P<DD>\d{2})' 形式的正则表达式这个正则表达式捕获了这种情况。

您的输入仅与 YYYY 匹配字符串的其余部分被丢弃。

对于引发错误并强制采用特定格式,@ason​​gtoruin 给出的建议非常好。

关于python - Arrow 成功解析了一些不符合默认模式的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40307842/

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