Превращение текстового представления даты на русском в вид даты

Существует представление даты описанное как

d=['ЧЕТВЕРГ 23 ИЮНЯ', 'ПЯТНИЦА 24 ИЮНЯ', 'СУББОТА 25 ИЮНЯ', 'ПОНЕДЕЛЬНИК 1 АВГУСТА'] 

следовательно, необходимо привести данный вид к

res_d=['23.06.2022','24.06.2022','25.06.2022','01.08.2022']

p.s. Даже если удалить первое слово "дня недели" с каждой строки, то как превратить "число" и "месяц" ('23 ИЮНЯ') в приемлемый вид даты?


Ответы (1 шт):

Автор решения: strawdog

Самое простое и надежное - сделать словарь для маппинга. Если хочется чего-то более эдакого, то вот:

import locale
from datetime import datetime

d=['ЧЕТВЕРГ 23 ИЮНЯ', 'ПЯТНИЦА 24 ИЮНЯ', 'СУББОТА 25 ИЮНЯ', 'ПОНЕДЕЛЬНИК 1 АВГУСТА'] 

locale.setlocale(locale.LC_ALL, 'ru_RU')

res = []
for item in d:
    date = ' '.join([item.split()[1], item.split()[2][:3]])
    res.append(datetime.strftime(datetime.strptime(date+" 2022", '%d %b %Y'), "%d.%m.%Y"))
    
print(res)

['23.06.2022', '24.06.2022', '25.06.2022', '01.08.2022']

→ Ссылка