Ansible如何将简单列表转换为指定结构的字典?
Ansible 列表转指定结构字典列表的实现方法
不需要使用list2dict过滤器(该过滤器用于将两个列表分别作为键和值生成单个字典,不匹配你的需求),直接用map结合dict过滤器就能实现,具体如下:
完整Playbook示例
--- - name: 转换列表为字典列表 hosts: localhost vars: list1: [1, 2, 3, 4] # 核心转换逻辑 dict1: "{{ list1 | map('dict', a='{{ item }}') | list }}" tasks: - name: 输出转换结果 debug: var: dict1
逻辑说明
map('dict', a='{{ item }}'):遍历list1中的每个元素,为每个元素生成一个以a为键、当前元素为值的字典| list:将map返回的迭代器转换为列表结构,得到最终的字典列表
执行后dict1的结果就是:[{a: 1}, {a:2}, {a:3}, {a:4}],且支持任意长度的输入列表。
内容的提问来源于stack exchange,提问作者LJS
相关产品推荐
相关产品推荐

