在Ansible中连接嵌套列表的元素
我有一个嵌套列表在Ansible中连接嵌套列表的元素,ansible,jinja2,Ansible,Jinja2,我有一个嵌套列表str,如下所示: [["22","ABC","XYZ"],["555","IJK","PQR"],...] 我必须将内部列表中的元素与/组合,然后将它们与,连接,形成一个字符串,如下所示: 22/ABC/XYZ,555/IJK/PQR,... 我试过使用set\u fact和金甲2,但运气不好 - set_fact: str1: |-
str
,如下所示:
[["22","ABC","XYZ"],["555","IJK","PQR"],...]
我必须将内部列表中的元素与/
组合,然后将它们与,
连接,形成一个字符串,如下所示:
22/ABC/XYZ,555/IJK/PQR,...
我试过使用set\u fact
和金甲2,但运气不好
- set_fact:
str1: |-
{%- set fs = "" -%}
{%- set im = "" -%}
{%- for i in str -%}
{%- for elem in i -%}
{%- set im = im + "/" + elem -%}
{%- endfor -%}
{%- set fs = fs + "," + im -%}
{%- endfor -%}
{{ fs }}
- debug: var=str1
输出:
TASK [debug var=str1] **********************************
ok: [host1] => {
"str1": ""
预期产出:
TASK [debug var=str1] **********************************
ok: [host1] => {
"str1": "22/ABC/XYZ,555/IJK/PQR"
感谢使用
wiht_list
创建一个var,其中包含与/
连接的项目列表,然后与,
连接
-设置事实:
str1:{{str1 | default([])+[item | join('/')]}
带_列表:“{{str}}”
-调试:
msg:{{str1 | join(',')}”
使用wiht_list
创建一个var,该var包含一个与/
连接的项目列表,然后与,
连接
-设置事实:
str1:{{str1 | default([])+[item | join('/')]}
带_列表:“{{str}}”
-调试:
msg:{{str1 | join(',')}”
首先将筛选器联接(/)映射到列表的项目,然后联接(,)它们
-设置事实:
str1:{{str | map('join','/')| join('',')}”
-调试:var=str1
给予
str1:22/ABC/XYZ,555/IJK/PQR
首先将筛选器联接(/)映射到列表的项目,然后联接(,)它们
-设置事实:
str1:{{str | map('join','/')| join('',')}”
-调试:var=str1
给予
str1:22/ABC/XYZ,555/IJK/PQR
谢谢你,加里。这也很有效!谢谢你,加里。这也很有效!这么短,工作起来很有魅力!谢谢你。这么短,很有魅力!非常感谢。