有谁知道为什么python dateutil解析器告诉我它包含无效的语法?它昨晚工作,将不再工作

时间:2018-01-06 19:30:05

标签: python parsing python-dateutil

 from dateutil import parser as _date_parser
  File "C:\Program Files (x86)\Python36-32\lib\site-packages\dateutil\parser.py", line 158
    l.append("%s=%s" % (attr, `value`))
                              ^
SyntaxError: invalid syntax

昨晚运行时,我的代码没有什么不同。没有问题,但现在我从dateutil解析器得到这个SyntaxError。这是解析器本身的代码:

def _repr(self, classname):
    l = []
    for attr in self.__slots__:
    value = getattr(self, attr)
    if value is not None:
        l.append("%s=%s" % (attr, `value`))
    return "%s(%s)" % (classname, ", ".join(l))

1 个答案:

答案 0 :(得分:4)

昨晚您使用的是Python 2.今天您使用的是Python 3。

在Python 2中,反引号被用作repr的快捷方式。在Python 3中,此别名不再使用,并且使用它会引发语法错误。

更改

l.append("%s=%s" % (attr, `value`))

l.append("%s=%s" % (attr, value))l.append("%s=%s" % (attr, repr(value)))

编辑我刚注意到此代码本身位于dateutil。看起来你以某种方式设法将Python 2版本安装到Python 3路径。