下面是我在Jinja2和Ansible中的字符串值
studId=ValueA,studName=valueB;studId=ValueC,studName=ValueD
我可以把它改成dictionary,这样我就可以使用下面的jinja2模板了
student id=item.studId
student name= item.studName
期望输出
student id=ValueA
student name= ValueB
student id=ValueC
student name= ValueD
给定字符串
s1: studId=ValueA,studName=valueB;studId=ValueC,studName=ValueD
统一分隔符,例如
- set_fact:
s2: "{{ s1|regex_replace('[,;]', ';') }}"
为
s2: studId=ValueA;studName=valueB;studId=ValueC;studName=ValueD
拆分条目,迭代2个条目,并创建字典列表,例如
- set_fact:
l1: "{{ l1|d([]) + [dict(item|map('split', '='))] }}"
loop: "{{ s2.split(';')|batch(2) }}"
给出了数据
的预期结构l1:
- studId: ValueA
studName: valueB
- studId: ValueC
studName: ValueD
模板
- debug:
msg: |
{% for item in l1 %}
student id={{ item.studId }}
student name={{ item.studName }}
{% endfor %}
给出预期结果
msg: |-
student id=ValueA
student name=valueB
student id=ValueC
student name=ValueD