I Как правильно преобразовать дату в приложении для очистки?

#python #web-scraping

#python #веб-очистка

Вопрос:

У меня есть такой код:

 def _updated_external(self):
   return dig(self.property_data, 'analyticsInfo', 'analyticsProperty', 'added') 
 

И он возвращает мне "20201104" , что мне нужно сделать ГГГГ-ММ-ДД

Функция dig работает с вложенными dicts.

Мне нужно получить дату и преобразовать ее для другой функции.

Я знаю, что лучше использовать dateparser.parser , но немного запутался в том, как правильно это написать.

Комментарии:

1. что у вас есть dig ? Чего вы ожидаете без кода?

2. Если у вас есть строка 20201104 , разделите ее с помощью [:4] , [4:6] , [6:] и добавьте точки.

3. @barny вы добавили YYYY-MM-DD , но OP не упомянул, какой формат он использует. Что делать, если OP нужен YYYY-DD-MM или DD.MM.YYYY или другой формат? 🙂

4. @furas Нет, это было редактирование операции. Я изменил удаление в названии на удаление, поскольку удаление означает удаление как мусора, тогда как удаление означает сбор содержимого веб-страницы.

5. @barry извините — когда я проверил историю выпусков, я увидел оба изменения и подумал, что оба являются вашими изменениями.

Ответ №1:

Если у вас есть дата в виде строки, вы можете использовать стандартную строковую функцию для ее изменения

 txt = '20201104'
result = txt[:4]   '-'   txt[4:6]   '-'   txt[6:]
 

Результат:

 '2020-11-04'
 

В конечном итоге вы можете использовать standard datetime для его анализа

 txt = '20201104'
result = datetime.datetime.strptime(txt, '%Y%m%d')
 

Результат:

 datetime.datetime(2020, 11, 4, 0, 0)
 

И позже вы можете использовать strftime для генерации в другом формате.

 result.strftime('%Y-%m-%d')
 

Результат:

 '2020-11-04'