使用字符串变量格式化timedelta

时间:2014-02-25 03:46:42

标签: python python-2.6

使用Python 2.6

鉴于以下代码行,如何从数据库中的变量动态构建timedelta的值?

next_alert_date = datetime.strptime(start_due_date, '%Y-%m-%d') + timedelta(days=2)

基本上,我需要这样的东西,但它似乎不起作用。

SyntaxError: invalid syntax

next_alert_date = datetime.strptime(start_due_date, '%Y-%m-%d') + timedelta(%s=%d) % (interval_type, interval_num)

1 个答案:

答案 0 :(得分:10)

也许您误解%运算符用于string formatting operation;它用于制作一个字符串。

>>> 'timedelta(%s=%d)' % ('days', 2)
'timedelta(days=2)'

使用** operator动态传递关键字参数:

>>> datetime.timedelta(**{'days': 2})
datetime.timedelta(2)

>>> interval_type = 'days'
>>> interval_num = 2
>>> datetime.timedelta(**{interval_type: interval_num})
datetime.timedelta(2)