Python метод для создания объекта dateutil.relativedelta.relativedelta из dict - PullRequest
0 голосов
/ 07 ноября 2019

Я использую следующий метод для создания объекта, указанного в заголовке:

from dateutil import relativedelta

MA_dict = {'years': 0,
         'months': 0,
         'weeks': 0,
         'days': 1,
         'hours': 0,
         'minutes': 0,
         'seconds': 0}


def dict2relativedelta(dict):
    '''
    creates relativedelta variable that can be used to calculate dates
    '''
    dt = relativedelta.relativedelta(years=dict['years'], months=dict['months'], weeks=dict['weeks'], days=dict['days'],
                                     hours=dict['hours'], minutes=dict['minutes'], seconds=dict['seconds'])
    return dt

Однако я хотел бы упростить это, чтобы я мог просто передать

MA_dict = {'days': 1}

и функция вернет то же самое. Как я могу это сделать?

1 Ответ

1 голос
/ 07 ноября 2019

Для этого вам не нужна специальная функция, поскольку у Python есть аргумент распаковки с оператором **. Вы можете выполнить то, что вы хотите с:

MA_dict = {"days": 1}
rd = relativedelta.relativedelta(**MA_dict)
...