你能告诉我怎么去掉行尾的逗号吗?
最后产出:
{名称:"name1",我国= "region1a",我国= "region1b"},
{名称:"name2",我国= "region2a",我国= "region2b"},
您只需要删除第二行末尾的一个(突出显示的)逗号。输出就是这样生成的。
{% 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 %}因此,我们需要这个输出
{name: "name1", My country = "region1a", My country = "region1b"},
{name: "name2", My country = "region2a", My country = "region2b"}发布于 2020-11-26 12:05:54
为此您可以使用loop.last,因此如果您正在循环上最后一项,请将逗号括在条件测试中。
您的模板最终将是:
{% 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字符串。
例如:
- debug:
msg: "{{ some_list | join(', ') }}"
vars:
some_list:
- foo
- bar
- baz会给你
foo, bar, bazhttps://stackoverflow.com/questions/65013336
复制相似问题