在使用include_vars
with_items
后,我得到了一系列结果
results:
- ansible_facts:
tag_Cluster_A:
name: Thinking cluster
words:
- Honk
- Thonk
- ansible_facts:
tag_Cluster_B:
name: Helloing Cluster
words:
- HOI
- HOI HOI
我正在尝试将带有结果的对象放到一个只包含tag_Cluster_*
个东西的扁平对象中。
tag_Cluster_A:
name: Thinking cluster
words:
- Honk
- Thonk
tag_Cluster_B:
name: Helloing Cluster
words:
- HOI
- HOI HOI
查询results[].ansible_facts
会生成如下数组:
[{tag_Cluster_A:{}},{tag_Cluster_B:{}}]
距离预期结果只有一步之遥。
我如何一起消磨这些?
答案 0 :(得分:1)
如果mylist
是[{tag_Cluster_A:{...}},{tag_Cluster_B:{...}}]
,那么
mydict: "{{ dict(mylist | map('dictsort') | sum(start=[])) }}"
将是{tag_Cluster_A:{...},tag_Cluster_B:{...}}
。
在这个技巧中,我们将dictsort
过滤器应用于原始列表的每个元素,然后展平列表以获得单个列对,然后将其转换回dict。