简体   繁体   English

使用字符串变量格式化timedelta

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM