Как установить день до 1 при анализе неполной даты с dateutil.parser?

Когда я использую dateutil.parser для анализа неполной даты, которой не хватает дня, я получаю день, установленный по 10 по какой-то причине:

 from dateutil.parser import parse >>> d1 = parse('2008 Apr 2') >>> d1 datetime.datetime(2008, 4, 2, 0, 0) >>> d2 = parse('2014 Apr') >>> d2 datetime.datetime(2014, 4, 10, 0, 0) 

Есть ли способ изменить это, чтобы день автоматически устанавливался на 1 вместо таких неполных случаев?

Вы можете передать аргумент ключевого слова по default . Если задано default по default , синтаксический анализатор заменит часть по умолчанию обработанной датой:

 >>> import datetime >>> from dateutil.parser import parse >>> >>> print parse('2014 Apr', default=datetime.datetime(2015, 1, 1)) 2014-04-01 00:00:00 

Согласно документации dateutil.parser.parse :

default – Объект datetime по умолчанию, если это объект datetime, а не None , элементы, указанные в timestr заменяют элементы объекта по умолчанию.