首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除ansible-template中行尾的逗号?

如何删除ansible-template中行尾的逗号?
EN

Stack Overflow用户
提问于 2020-11-25 22:04:37
回答 1查看 1.4K关注 0票数 1

你能告诉我怎么去掉行尾的逗号吗?

最后产出:

{名称:"name1",我国= "region1a",我国= "region1b"},

{名称:"name2",我国= "region2a",我国= "region2b"},

您只需要删除第二行末尾的一个(突出显示的)逗号。输出就是这样生成的。

代码语言:javascript
复制
{% for country in AllСountry %}
{name: "{{ country }}",{% for count in lookup('vars', country) %} My country = "{{ count }}",{% if loop.last %} My country = "{{ count }}"{% endif %}{% endfor %}},
{% endfor %}

因此,我们需要这个输出

代码语言:javascript
复制
{name: "name1", My country = "region1a", My country = "region1b"},
{name: "name2", My country = "region2a", My country = "region2b"}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-26 12:05:54

为此您可以使用loop.last,因此如果您正在循环上最后一项,请将逗号括在条件测试中。

您的模板最终将是:

代码语言:javascript
复制
{% for country in AllСountry %}
{name: "{{ country }}",{% for count in lookup('vars', country) %} My country = "{{ count }}",{% if loop.last %} My country = "{{ count }}"{% endif %}{% endfor %}}{% if not loop.last %},{% endif %}
{% endfor %}

这就是说,as raised on your other question,我觉得你把事情弄得很复杂,你到底想达到什么目的?你想要构建一个JSON吗?(在这种情况下,请注意My country = "region2a"是无效的)。

如果您确实试图构造一个数据结构,那么您应该创建表示这些结构的列表和字典,然后使用简单的现有过滤器(如to_json, to_yaml等)。

否则,这一点仍然适用:如果您想要创建一个逗号分隔的字符串列表,请在Ansible中创建一个字符串列表,然后只创建join字符串。

例如:

代码语言:javascript
复制
- debug:
    msg: "{{ some_list | join(', ') }}"
  vars:
    some_list:
      - foo
      - bar
      - baz

会给你

代码语言:javascript
复制
foo, bar, baz
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65013336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档