【问题标题】:Convert integer to string JinjaConvert integer to string Jinja
【发布时间】:2013-10-10 06:19:42
【问题描述】:

我有一个整数

{% set curYear = 2013 %}

{% if %} 语句中,我必须将它与一些字符串进行比较。我不能在开头将curYear 设置为字符串,因为我必须在循环中递减它。

如何转换?

【问题讨论】:

    标签: python jinja2 nunjucks


    【解决方案1】:

    我找到了答案。

    将整数转换为字符串:

    myOldIntValue|string
    

    将字符串转换为整数:

    myOldStrValue|int
    

    【讨论】:

    • 你在哪个页面找到的?
    • @Sergio heh,我不记得了,那是几年前的事了 :)
    • 确认可以在(电子邮件)HTML 构建上使用 nunjucks(基于 jinja)。这就是如何将数字字符串值转换为整数。顺便说一句,就我而言,我将整数作为来自 JSON 内容文件的字符串:"hero_title_img_w": "111""hero_title_img2_w": "222"。然后我将它们添加到 .NJK 文件中:{{ hero_title_img_w|int + hero_title_img2_w|int }} 用作图像的width 属性。希望有一天它对某人有所帮助。
    • 对于那些想要文档的人,这是一个内置过滤器:jinja.palletsprojects.com/en/2.11.x/templates/#builtin-filters
    【解决方案2】:

    OP 需要转换为{% set ... %} 之外的字符串。 但如果这不是你的情况,你可以这样做:

    {% set curYear = 2013 | string() %}
    

    请注意,您需要该 jinja 过滤器上的括号。

    如果要连接 2 个变量,也可以使用 ~ custom operator

    【讨论】:

      【解决方案3】:

      可以在 ansible 中的 set_fact 上使用它

      '{0:d}'.format(myOldIntValue)
      

      【讨论】:

      • 问题是针对 Jinja2 的,问题中没有提到 Ansible。
      • @GinoMempin 虽然这是真的,但 ansible 是在 Python 中实现并使用 jinja。我刚刚测试过,这个技巧有效!
      猜你喜欢
      • 2022-12-16
      • 2016-10-14
      • 2013-05-14
      • 2022-12-02
      • 2020-03-28
      • 1970-01-01
      • 2015-04-15
      • 2022-12-02
      相关资源
      最近更新 更多