[英]Format timedelta using string variable
Using Python 2.6 使用Python 2.6
Given the following line of code, how can I dynamically build the value for timedelta from variables in a DB? 给定以下代码行,如何从DB中的变量动态构建timedelta的值?
next_alert_date = datetime.strptime(start_due_date, '%Y-%m-%d') + timedelta(days=2)
Basically, I need something like this but it doesnt appear to work. 基本上,我需要这样的东西,但它似乎不起作用。
SyntaxError: invalid syntax
next_alert_date = datetime.strptime(start_due_date, '%Y-%m-%d') + timedelta(%s=%d) % (interval_type, interval_num)
Maybe you're misunderstanding %
operator used for string formatting operation ; 也许你误解了
%
运算符用于字符串格式化操作 ; it is used to make a string. 它用于制作一个字符串。
>>> 'timedelta(%s=%d)' % ('days', 2)
'timedelta(days=2)'
Use **
operator to pass keyword arguments dynamically: 使用
**
运算符动态传递关键字参数:
>>> datetime.timedelta(**{'days': 2})
datetime.timedelta(2)
>>> interval_type = 'days'
>>> interval_num = 2
>>> datetime.timedelta(**{interval_type: interval_num})
datetime.timedelta(2)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.