【问题标题】:Format timedelta using string variable使用字符串变量格式化 timedelta
【发布时间】:2014-02-25 03:46:42
【问题描述】:

使用 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)

【问题讨论】:

    标签: python python-2.6


    【解决方案1】:

    也许你误解了% 运算符用于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)
    

    【讨论】:

    • 啊,好吧...对不起 Python 新手。 :-) 效果很好,谢谢。
    猜你喜欢
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-13
    • 1970-01-01
    相关资源
    最近更新 更多