Работа с значениями и ключём. Python

Нужно по ключам выводить выходной, праздничный выходной, сокращённый или рабочий день. Это всё содержится так - [{'2022-01-01': 'weekend', '2022-01-02': 'weekend', '2022-01-03': 'holiday weekend', '2022-01-04': 'preholiday', '2022-03-05': 'preholiday', '2022-03-10': 'workday', '2022-03-11': 'workday'}]

Я создал переменную, которая определяет настоящее время. Дальше надо было проверять, какой сегодня день, и по нему выводить значение с либы. Например: сегодня 2022-01-01, это выходной.

Сделал я это примерно так:

date_actual: datetime.datetime = datetime.datetime.now()
date_format: str = date_actual.strftime("%Y/%m/%d  %H:%M:%S")

elems_to_remove: list = []

workday = 'Сегодня рабочий день'
holiday_weekend = 'Сегодня праздничный выходной'
preholiday = 'Сегодня сокращённый день'
weekend = 'Сегодня выходной'

# праздничные выходные
for elem in list(data):
    if data[elem] in ('workday'):
        data.pop(elem)

for item in list(data):
    if item == date_format:
        return holiday_weekend
    elif item == date_format:
        return preholiday
    elif item == date_format:
        return weekend
    else:
        return workday

Но что-то не получилось, при любом раскладе пишет, что сегодня рабочий день. Как можно решить данную проблему?


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

Автор решения: Сергей

У вас дан список с одним словарем внутри, чтобы пробежаться по его ключам надо for elem in list????(data): заменить на for elem in data[0], тогда в elem будут ключи словаря, т.е. даты, сравните её с "сегодняшней" датой и верните нужное значение data[0][elem].

→ Ссылка