如何将动态参数传递给 datetime.timedelta 函数?

How pass dynamic arguments to the datetime.timedelta function?

我正在编写一个 python3 脚本,我在其中使用 timedelta() 函数并且需要将参数(带值的关键字参数)动态传递给 timedelta()

我尝试了几件事,但我不知道该怎么做。

from datetime import timedelta

timeDeltaArgKey = "minutes"
timeDeltaArgValue = 60


timedelta(timeDeltaArgKey=timeDeltaArgValue)
# TypeError: 'timeDeltaArgKey' is an invalid keyword argument for __new__()

timedelta("{}={}".format(timeDeltaArgKey, timeDeltaArgValue))
# TypeError: unsupported type for timedelta days component: str

我也试过把它作为数组传入:

timeDeltaKwarg = {"minutes": 60}

timedelta(timeDeltaKwarg)
# TypeError: unsupported type for timedelta days component: dict

您需要解压字典才能传递它:

timeDeltaKwarg = {"minutes": 60}
timedelta(**timeDeltaKwarg)

或者您可以简单地将其作为普通参数传递

timedelta(minutes=60)

您需要使用timedelta如下:

datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

创建关键字参数字典并将其传递给 timedelta:

from datetime import timedelta


timeDeltaArg1Key = "days"
timeDeltaArg1Value = 3
timeDeltaArg2Key = "minutes"
timeDeltaArg2Value = 60

kwargs = {timeDeltaArg1Key: timeDeltaArg1Value, timeDeltaArg2Key: timeDeltaArg2Value}

result = timedelta(**kwargs)
print(result)  # -> 3 days, 1:00:00