首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Ansible中从列表中创建词典

如何在Ansible中从列表中创建词典
EN

Stack Overflow用户
提问于 2019-05-23 22:04:45
回答 1查看 42关注 0票数 0

因此,我有一个列表,其中包含一些我想格式化/转换为字典的项目。

当前列表如下所示(虚拟内容)

代码语言:javascript
复制
users: 
 - John
 - John_Doe
 - Jane
 - Jane_Doe

预期结果将是这样的,

代码语言:javascript
复制
users:
- username: "John"
  fullname:
    - name: John_Doe
- username: Jane
  fullname:
    - name: Jane_Doe

我知道通过使用Jinja2,您可以完成这样的事情,但我似乎无法从我的用例中理解它。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-24 04:00:46

下面的剧本

代码语言:javascript
复制
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

给出(删节):

代码语言:javascript
复制
"users_dir": [
    {
        "fullname": [
            {
                "name": "John_Doe"
            }
        ], 
        "username": "John"
    }, 
    {
        "fullname": [
            {
                "name": "Jane_Doe"
            }
        ], 
        "username": "Jane"
    }
]

这就是你要找的吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56277036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档