【问题标题】:for loop String concatenation in jinjajinja中的for循环字符串连接
【发布时间】:2021-11-18 11:13:03
【问题描述】:

在 jinja 中如何将 for 循环迭代输出以逗号分隔的形式存储到变量中?

预期输出

all_servers=test-vm-0,test-vm-1,test-vm-2,test-vm-3

{% set instanceCount = properties["instanceCount"] %}

{% set all_servers = [] %}
{% for vmIndex in range(instanceCount) %}
{% do all_servers.append({{ env["deployment"] }}-vm-{{ vmIndex }}) %}
{% endfor%}
{% all_servers|join(', ') %}```

【问题讨论】:

  • 是要存入变量还是输出到模板结果?
  • 将其存储在一个变量中,并将其作为来自同一个 jinja 文件的元数据键/值对传递。此 jinja 文件与 gloud 部署管理器一起使用
  • {% set all_servers=','.join(all_servers) %} 工作吗?
  • 让我检查一下,谢谢!

标签: jinja2


【解决方案1】:

常规的 Python 连接应该可以解决问题:

{% set all_servers=','.join(all_servers) %}

【讨论】:

    【解决方案2】:
      - key: all_servers
        {% set delimiter = joiner(",") %}
        value: {% for vmIndex in range(properties["instanceCount"]) -%}
          {{- delimiter() }}{{ env["deployment"] }}--vm-{{ vmIndex -}}
        {%- endfor %}
    

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 2018-09-02
    • 2018-07-01
    相关资源
    最近更新 更多