ตัวอย่างเช่น
- set_fact:
x: "{{ _dict|จาก_yaml }}"
วาร์:
_regex: '^(.*)\[(.*)\](.*)$'
_key: "{{ stdout|regex_replace(_regex, '\1') }}"
_val: "{{ stdout|regex_replace(_regex, '\2') }}"
_dict: |
{{ _กุญแจ }}:
{% สำหรับฉันใน _val.split() %}
{{ i|regex_replace(':', ':') }}
{% สิ้นสุดสำหรับ %}
ให้
x:
แผนที่:
คีย์ 1: ค่า 1
คีย์ 2: ค่า 2
คีย์ 3: ค่า 3
หากมีบรรทัดเพิ่มเติมเช่น
stdout_lines:
- "แผนที่1[คีย์1:ค่า1คีย์2:ค่า2คีย์3:ค่า3]"
- "แผนที่2[key1:value1 key2:value2 key3:value3]"
- "map3[key1:value1 key2:value2 key3:value3]"
มันจะเป็นไปได้ที่จะ รวมกัน พจนานุกรม เช่น
- set_fact:
x: "{{ x|d({})|combine(_dict|from_yaml) }}"
วนซ้ำ: "{{ stdout_lines }}"
วาร์:
_regex: '^(.*)\[(.*)\](.*)$'
_key: "{{ รายการ|regex_replace(_regex, '\1') }}"
_val: "{{ รายการ|regex_replace(_regex, '\2') }}"
_dict: |
{{ _กุญแจ }}:
{% สำหรับฉันใน _val.split() %}
{{ i|regex_replace(':', ':') }}
{% สิ้นสุดสำหรับ %}
ให้
x:
แผนที่1:
คีย์ 1: ค่า 1
คีย์ 2: ค่า 2
คีย์ 3: ค่า 3
แผนที่2:
คีย์ 1: ค่า 1
คีย์ 2: ค่า 2
คีย์ 3: ค่า 3
แผนที่ 3:
คีย์ 1: ค่า 1
คีย์ 2: ค่า 2
คีย์ 3: ค่า 3
หากปุ่มซ้ำกัน เช่น
stdout_lines:
- "แผนที่[key1:value1 key2:value2 key3:value3]"
- "แผนที่[key1:value1 key2:value2 key3:value3]"
- "แผนที่[key1:value1 key2:value2 key3:value3]"
เป็นไปได้ที่จะเชื่อมรายการเข้าด้วยกัน เช่น
- set_fact:
x: "{{ x|d([]) + [_dict|from_yaml] }}"
วนซ้ำ: "{{ stdout_lines }}"
วาร์:
_regex: '^(.*)\[(.*)\](.*)$'
_key: "{{ รายการ|regex_replace(_regex, '\1') }}"
_val: "{{ รายการ|regex_replace(_regex, '\2') }}"
_dict: |
{{ _กุญแจ }}:
{% สำหรับฉันใน _val.split() %}
{{ i|regex_replace(':', ':') }}
{% สิ้นสุดสำหรับ %}
ให้
x:
- แผนที่:
คีย์ 1: ค่า 1
คีย์ 2: ค่า 2
คีย์ 3: ค่า 3
- แผนที่:
คีย์ 1: ค่า 1
คีย์ 2: ค่า 2
คีย์ 3: ค่า 3
- แผนที่:
คีย์ 1: ค่า 1
คีย์ 2: ค่า 2
คีย์ 3: ค่า 3