Python 可解析嵌套字典处理

Python 可解析嵌套字典处理,python,ansible,Python,Ansible,我有以下任务 - debug: msg: "Here: {{ item['containers'] }}" with_items: "{{ container_matrix['results'] }}" 它返回一个包含容器名称及其启动参数的字典。 比如:{“container-1”:{“docker_run”:“docker run-p80:80nginx”,“env_文件”:“config1.env”}, “container-2”:{“docker_run”:“dock

我有以下任务

    - debug:
    msg: "Here: {{ item['containers'] }}"
  with_items: "{{ container_matrix['results'] }}"
它返回一个包含容器名称及其启动参数的字典。 比如:{“container-1”:{“docker_run”:“docker run-p80:80nginx”,“env_文件”:“config1.env”}, “container-2”:{“docker_run”:“docker run-p8080:80nginx”,“env_文件”:“config2.env”}

但是我实际上想提取容器名及其env_文件

container_1 -> config1.env
container-2  -> config2.env
我尝试了几种方法,但似乎没有一种有效

- debug:
    msg: "Here: {{ item }}"
  with_dict: "{{ container_matrix['results'].'containers'] }}"
他也在失败

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

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

任务

    - set_fact:
        mydata: "{{ containers|
                    dict2items|
                    json_query('[].{name: key, env_file: value.env_file}') }}"
    - debug:
        var: mydata
给予

    - set_fact:
        mydata: "{{ containers|
                    dict2items|
                    json_query('[].{name: key, env_file: value.env_file}') }}"
    - debug:
        var: mydata
    "mydata": [
        {
            "env_file": "config1.env", 
            "name": "container-1"
        }, 
        {
            "env_file": "config2.env", 
            "name": "container-2"
        }
    ]