- name: list of list to list of dict
hosts: localhost
become: false
gather_facts: false
vars:
test:
- - host1
- fd99:9999::1
- - host1
- 10.0.1.1
- - host2
- fd99:9999::1
- - host2
- 10.0.1.1
- - foo
- fd99:9999::1
- - foo
- 10.0.1.1
- - baz
- fd99:9999::1
- - baz
- 10.0.1.1
tasks:
- name: test
debug: var=test
- name: list 2 dict
set_fact:
list2dict: "{{ list2dict|default([]) + [ thisdict ] }}"
loop: "{{ test }}"
vars:
thisdict: { name: "{{ item.0 }}", addr: "{{ item.1 }}" }
- name: list2dict
debug: var=list2dict
--
You received this message because you are subscribed to the Google Groups "Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-proje...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CAF8BbLamT%3Ds3H4R%3DcxShSg16KrSr%2B4%3D%3DUytgZbjPivhMK1rfmg%40mail.gmail.com.
- name: list2dict
set_fact:
list2dict: >-
{{ test | map('zip', ['name', 'addr'])
| map('map', 'reverse')
| map('community.general.dict') }}
- name: list2dict
debug: var=list2dict
--- # dick-visser-03.yml - name: Add helper keys to list of dicts hosts: localhost connection: local gather_facts: no vars: test: - - host1 - fd99:9999::1 - - host1 - 10.0.1.1 - - host2 - fd99:9999::1 - - host2 - 10.0.1.1 - - foo - fd99:9999::1 - - foo - 10.0.1.1 - - baz - fd99:9999::1 - - baz - 10.0.1.1 tasks: - name: Dictify the test data - 1 ansible.builtin.debug: msg: - 'test' - '{{ test }}' - ' test | map("map","community.general.dict_kv","value")' - '{{ test | map("map","community.general.dict_kv","value") }}' - ' test | map("map","community.general.dict_kv","value") | map("zip",[{"key":"name"},{"key":"address"}])' - '{{ test | map("map","community.general.dict_kv","value") | map("zip",[{"key":"name"},{"key":"address"}]) }}' - ' test | map("map","community.general.dict_kv","value") | map("zip",[{"key":"name"},{"key":"address"}]) | map("map","flatten",1) | map("map","combine")' - '{{ test | map("map","community.general.dict_kv","value") | map("zip",[{"key":"name"},{"key":"address"}]) | map("map","flatten",1) | map("map","combine") }}' - ' test | map("map","community.general.dict_kv","value") | map("zip",[{"key":"name"},{"key":"address"}]) | map("map","flatten",1) | map("map","combine") | map("items2dict")' - '{{ test | map("map","community.general.dict_kv","value") | map("zip",[{"key":"name"},{"key":"address"}]) | map("map","flatten",1) | map("map","combine") | map("items2dict") }}'
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/6F5FBEE5-028A-4AB2-ADC9-5B2B535290F7%40nist.gov.
-- Todd
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/0d6ba760-b60c-4749-8fa6-8ccd623c0959%40gmail.com.