如何将动态参数传递给 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
我正在编写一个 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