我有以下2个地图设置
prefix_color:
eu_: "blue"
us_: "red"
country_shade:
sweden: "light"
belgium: "dark"
我希望以与ansible中的with_nested
相同的方式遍历两个映射,但我需要同时访问两个dicts中的键和值。
基本上我需要的是这样的东西
- name: loop
debug:
msg: "key: {{ item[0].key + item[1].key }}, value: {{ item[0].value + item[1].value }}"
with_nested:
- "{{ prefix_color }}"
- "{{ country_shade }}"
以上操作不起作用,因为with_nested
只有密钥可用,而with_dict
不允许超过1个字典。
如何解决这个问题?考虑到嵌套循环和字典的概念都存在于ansible中,它似乎应该是一件简单的事情。
答案 0 :(得分:2)
您可以使用dictsort将字典转换为列表:
- name: loop
debug:
msg: "key: {{ item[0] + item[2] }}, value: {{ item[1] + item[3] }}"
with_nested:
- "{{ prefix_color | dictsort }}"
- "{{ country_shade | dictsort }}"
在你的设置中,原始键将是偶数索引和值 - 不均匀。