没有从正确格式的字符串获取日期时间

时间:2015-05-15 18:04:28

标签: python datetime

我正在使用此代码从文件中的行中获取时间。

    for line in f:
        try:
            dt = parser.parse(line).replace(tzinfo=None)
            print dt
        except Exception, e:
            print line
            print(traceback.format_exc())
            continue


Traceback (most recent call last):
  File "./script.py", line 90, in read
    dt = parser.parse(line).replace(tzinfo=None)
AttributeError: 'ArgumentParser' object has no attribute 'parse'

2 个答案:

答案 0 :(得分:1)

你能做的最好的事情就是学会用简单的印刷语句调试你的问题

for line in f:
    try:
        dt = parser.parse(line).replace(tzinfo=None)\
        print "SUCCESS:",dt
    except Exception as e:
        traceback.print_exc()
        print "UNABLE TO PARSE: %r"%line
        continue

现在你应该能够快速找出问题所在......显然这条线看起来不像你的例子

答案 1 :(得分:0)

检查您在代码中指定parser名称的位置。

比较

>>> from argparse import ArgumentParser
>>> parser = ArgumentParser()
>>> s = 'Fri May 15 11:22:54 EDT 2015'
>>> parser.parse(s)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'ArgumentParser' object has no attribute 'parse'

使用:

>>> from dateutil import parser
>>> parser.parse(s)
datetime.datetime(2015, 5, 15, 11, 22, 54)