LINUX.ORG.RU

Почему dateutil.parser.parse(«A») = default?

 


0

1

Почему dateutil на совершенно некорректных строках, например строке «A», парсит её без ошибки, и выдает корректную дату? На строке «B» (тоже латинская буква) - выдает ошибку.

#!/usr/bin/python
# -*- coding: utf-8 -*-

import dateutil.parser as dparser # for parser.parse()
import datetime
d = datetime.datetime(2012,1,1)
print(dparser.parse("A",default=d))
print(dparser.parse("B",default=d))
выдача:
2012-01-01 00:00:00

Traceback (most recent call last):
  File "test.py", line 8, in <module>
    print(dparser.parse("B",default=d))
...\test_dparser\dateutil\parser.py", line 698, in parse
    return DEFAULTPARSER.parse(timestr, **kwargs)
...\test_dparser\dateutil\parser.py", line 304, in parse
    raise ValueError("unknown string format")
ValueError: unknown string format
Как победить эту багофичу? В гугле нашел только эту документацию: http://labix.org/python-dateutil На stackoverflow по этому вопросу ничего нет.

★★★★★

Сорри, неправильно искал. Через гугль не мог - выручил поиск по самому ресурсу:
http://stackoverflow.com/questions/8434854/parsing-a-date-in-python-without-u... :

DEFAULT_DATE = datetime.datetime(datetime.MINYEAR, 1, 1)

def parse_no_default(dt_str):    
    dt = parser.parse(dt_str, default=DEFAULT_DATE).date()
    if dt != DEFAULT_DATE:
       return dt
    else:
       return None

pacify ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.