首页 > 解决方案 > maya.parse 在某些日期失败(AttributeError:'NoneType' 对象没有属性'replace')

问题描述

尝试解析某些 ISO 字符串日期时,maya.parse 函数会引发错误。

例子:

maya.parse("Mon, 02 Mar 2020 00:00:00 GMT")

工作示例:

maya.parse("Wed, 02 Sep 2020 00:00:00 GMT") <MayaDT epoch=1599004800.0>

maya.parse("Tue, 01 Sep 2020 00:00:00 GMT") <MayaDT epoch=1598918400.0>

  File "<stdin>", line 1, in <module>
  File "/Users/eanna/.local/share/virtualenvs/yo-_4WEwAWG/lib/python3.7/site-packages/maya/core.py", line 766, in parse
    dt = pendulum.parse(str(string), **options)
  File "/Users/eanna/.local/share/virtualenvs/yo-_4WEwAWG/lib/python3.7/site-packages/pendulum/parser.py", line 29, in parse
    return _parse(text, **options)
  File "/Users/eanna/.local/share/virtualenvs/yo-_4WEwAWG/lib/python3.7/site-packages/pendulum/parser.py", line 56, in _parse
    tz=parsed.tzinfo or options.get("tz", UTC),
  File "/Users/eanna/.local/share/virtualenvs/yo-_4WEwAWG/lib/python3.7/site-packages/pendulum/__init__.py", line 111, in datetime
    tz = _safe_timezone(tz)
  File "/Users/eanna/.local/share/virtualenvs/yo-_4WEwAWG/lib/python3.7/site-packages/pendulum/__init__.py", line 82, in _safe_timezone
    elif obj.tzname(None) == "UTC":
  File "/Users/eanna/.local/share/virtualenvs/yo-_4WEwAWG/lib/python3.7/site-packages/dateutil/tz/tz.py", line 238, in tzname
    return self._tznames[self._isdst(dt)]
  File "/Users/eanna/.local/share/virtualenvs/yo-_4WEwAWG/lib/python3.7/site-packages/dateutil/tz/tz.py", line 291, in _isdst
    dstval = self._naive_is_dst(dt)
  File "/Users/eanna/.local/share/virtualenvs/yo-_4WEwAWG/lib/python3.7/site-packages/dateutil/tz/tz.py", line 259, in _naive_is_dst
    timestamp = _datetime_to_timestamp(dt)
  File "/Users/eanna/.local/share/virtualenvs/yo-_4WEwAWG/lib/python3.7/site-packages/dateutil/tz/tz.py", line 1814, in _datetime_to_timestamp
    return (dt.replace(tzinfo=None) - EPOCH).total_seconds()
AttributeError: 'NoneType' object has no attribute 'replace'

环境和版本

标签: pythonpython-3.x

解决方案


推荐阅读