我在Ansible中有以下列表,并希望得到一个扁平结构。 输入:
[
{
id: "one",
level: "3"
},
{
id: "two",
level: "8"
},
...
]
期望的输出:
[
{
one: "3"
},
{
two: "8"
},
...
]
答案 0 :(得分:1)
没有简单的方法开箱即用。
您可以使用自定义template filter:
my_list | map('template','{"<<item.id>>":"<<item.level>>"}',from_json=true) | list
或使用set_fact
+ register
+ with_items
生成新变量,请参阅Process complex variables with set_fact and with_items。
- set_fact:
tmp_item: '{ "{{ item.id }}": "{{ item.level }}" }'
with_items: "{{ my_list }}"
register: tmp_list
- debug:
msg: "{{ tmp_list.results | map(attribute='ansible_facts.tmp_item') | list }}"