#python-3.x
#python-3.x
Вопрос:
Не могу понять, почему он возвращает ошибку, когда у меня есть год — месяц — дата в правильном порядке
from datetime import datetime
dates = ['2017 May 12th' ,'2016 December 22nd' ,'2016 Novermber 17th'
,'2016 November 3rd' ,'2016 November 17th' ,'2017 May 12th'
,'2017 December 22nd' ,'2017 November 17th' ,'2017 November 3rd' ,
'2017 November 17th' ,'2017 May 12th' ,'2018 December 22nd' ,'2018 November 17th'
,'2018 November 3rd' ,'2018 November 17th' ,'2019 May 12th' ,'2019 December 22nd' ,
'2019 November 17th' ,'2019 November 3rd' ,'2019 November 17th' ,'2020 October 31st']
dates.sort(key = lambda dates: datetime.strptime(dates, '%Y %b %d'))
Комментарии:
1. Добро пожаловать в Stackoverflow, как потенциальный участник (вы), я предлагаю попытаться самостоятельно разобраться с простыми проблемами, подобными этой (для вашего же блага). Это поможет вам лучше понять, как работает код, и поможет вам лучше решать проблемы.
Ответ №1:
Ваша проблема связана с тем фактом, что оператор datetime.striptime(dates, '%Y %b %d')
выдает ошибку, поскольку он не может правильно интерпретировать день. Чтобы легко устранить эту проблему, я бы сделал следующее:
from dateutil import parser
from datetime import datetime
dates.sort(key = lambda dates: parser.parse(dates))