如何从 Ansible 中的列表中生成字典
How to make a dict from a list in Ansible
所以我有一个列表,其中包含一些我想 format/transform 写入字典的项目。
当前列表如下所示,(虚拟内容)
users:
- John
- John_Doe
- Jane
- Jane_Doe
预期的结果是这样的,
users:
- username: "John"
fullname:
- name: John_Doe
- username: Jane
fullname:
- name: Jane_Doe
我知道使用 Jinja2 可以完成这样的事情,但我似乎无法为我的用例弄清楚。提前致谢。
下图
vars:
users:
- John
- John_Doe
- Jane
- Jane_Doe
users_dir: []
tasks:
- set_fact:
users_dir: "{{ users_dir + [{'username': users[item],
'fullname': [{'name': users[item+1]}]
}] }}"
loop: "{{ range(0, users|length, 2)|list }}"
- debug:
var: users_dir
给出(删节):
"users_dir": [
{
"fullname": [
{
"name": "John_Doe"
}
],
"username": "John"
},
{
"fullname": [
{
"name": "Jane_Doe"
}
],
"username": "Jane"
}
]
这是您要找的吗?
所以我有一个列表,其中包含一些我想 format/transform 写入字典的项目。
当前列表如下所示,(虚拟内容)
users:
- John
- John_Doe
- Jane
- Jane_Doe
预期的结果是这样的,
users:
- username: "John"
fullname:
- name: John_Doe
- username: Jane
fullname:
- name: Jane_Doe
我知道使用 Jinja2 可以完成这样的事情,但我似乎无法为我的用例弄清楚。提前致谢。
下图
vars:
users:
- John
- John_Doe
- Jane
- Jane_Doe
users_dir: []
tasks:
- set_fact:
users_dir: "{{ users_dir + [{'username': users[item],
'fullname': [{'name': users[item+1]}]
}] }}"
loop: "{{ range(0, users|length, 2)|list }}"
- debug:
var: users_dir
给出(删节):
"users_dir": [
{
"fullname": [
{
"name": "John_Doe"
}
],
"username": "John"
},
{
"fullname": [
{
"name": "Jane_Doe"
}
],
"username": "Jane"
}
]
这是您要找的吗?