首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可能的嵌套字典处理

可能的嵌套字典处理
EN

Stack Overflow用户
提问于 2020-04-02 11:04:42
回答 1查看 49关注 0票数 1

我有下面的任务,

代码语言:javascript
复制
    - debug:
    msg: "Here: {{ item['containers'] }}"
  with_items: "{{ container_matrix['results'] }}"

它返回一个包含容器名称及其启动参数的字典。点赞:{"container-1":{"docker_run":"docker run -p 80:80nginx“,"env_file":"config1.env"},"container-2":{"docker_run":"docker run -p 8080:80nginx”,"env_file":"config2.env"}

但是,我实际上想提取容器名称及其env_file,

代码语言:javascript
复制
container_1 -> config1.env
container-2  -> config2.env

我尝试了几种方法,但似乎没有一种方法有效。

代码语言:javascript
复制
- debug:
    msg: "Here: {{ item }}"
  with_dict: "{{ container_matrix['results'].'containers'] }}"

也在失败。

有人能给我指引正确的方向吗?

EN

回答 1

Stack Overflow用户

发布于 2020-04-02 14:34:46

给定“一个包含容器名称及其启动参数的字典”。

代码语言:javascript
复制
containers:
  "container-1": {"docker_run":"docker run -p 80:80 nginx", "env_file":"config1.env"}
  "container-2": {"docker_run":"docker run -p 8080:80 nginx", "env_file":"config2.env"}

任务

代码语言:javascript
复制
    - set_fact:
        mydata: "{{ containers|
                    dict2items|
                    json_query('[].{name: key, env_file: value.env_file}') }}"
    - debug:
        var: mydata

代码语言:javascript
复制
    "mydata": [
        {
            "env_file": "config1.env", 
            "name": "container-1"
        }, 
        {
            "env_file": "config2.env", 
            "name": "container-2"
        }
    ]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60983631

复制
相关文章

相似问题

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