是否可以使用列表/地图推导使用Jinja2将基元列表转换为词典列表?
鉴于这种结构:
list:
- some_val
- some_val_2
在每个元素上应用map
以获得:
list:
- statically_added: some_val
- statically_added: some_val_2
其他可能的方式:list_from_example|map(attribute="statically_added")|list
它实际上非常简单。至少,这适用于Ansible:
vars:
my_list:
- some_val
- some_val_2
dict_keys:
- key_1
- key_2
tasks:
- debug:
msg: "{{ dict(dict_keys | zip(my_list)) }}"
输出:
TASK [debug] *******************************
ok: [localhost] => {
"msg": {
"key_1": "some_val",
"key_2": "some_val_2"
}
}
请注意,您必须提供密钥列表,并且它们必须是不同的(字典的性质意味着密钥不能相同)。
UPDATE。刚刚意识到标题有点误导,我回答了标题,而不是实际的问题。但是,我将保留原样,因为我相信很多人会谷歌将列表转换成字典并找到这篇文章。