【问题标题】:Jinja Template dict/list filter "contains" or "like" - SaltstackJinja 模板字典/列表过滤器“包含”或“喜欢” - Saltstack
【发布时间】:2017-08-10 15:00:20
【问题描述】:

我想过滤包含或以 'foo_' 开头的值,并忽略列表中的其他值。

值(不能修改):

TEST:
- foo_a
- foo_b
- bar_a
- bar_b
- test_c

模板:

{% for value in grains['TEST'] %}
- do something with value that contains "foo_"
{% endfor %}

我该怎么做?

我试过了:

{% for value in grains['TEST']|map(^foo_) %}
- do something with value that contains "foo_"
{% endfor %}

=> 没有成功

【问题讨论】:

  • {% for value in grains['TEST'] if value.startswith('foo_') %} -do something {% endfor %}

标签: python jinja2 salt-stack


【解决方案1】:

假设每个值都是一个字符串(似乎是这种情况),您应该能够对字符串使用标准的startswith 方法,例如{% if value.startswith('foo_') %}

【讨论】:

    【解决方案2】:

    如果你想做一个子字符串搜索,你可以像这样检查一个变量的字符串匹配。确保将变量转换为字符串。

    {% if '.mov' in var|string %}
       do something...
    {% endif %}
    

    【讨论】:

    • 不推荐纯代码答案。您能否解释一下您的代码,以便 OP 能够理解和使用它。
    猜你喜欢
    • 2020-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    相关资源
    最近更新 更多