如何从 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"
    }
]

这是您要找的吗?