如何使用Ansible遍历二维列表?

如何使用Ansible遍历二维列表?,ansible,ansible-playbook,Ansible,Ansible Playbook,我有一个这样的变量: "files": { "results": [ { "files": [ { "path": "/etc/file1.xml", }, { "path": "/etc/file2.xml", }

我有一个这样的变量:

"files": {
    "results": [
        {
            "files": [
                {
                    "path": "/etc/file1.xml", 
                }, 
                {
                    "path": "/etc/file2.xml", 
                }
            ]
        },
        {
            "files": [
                {
                    "path": "/etc/file2.xml", 
                }
            ]
        }, 
        {
            "files": []
        }
    }
}

如何迭代所有路径?

您不需要迭代二维来获得所有路径。
使用过滤器减少原始列表

要从示例中获取路径的简单列表,请执行以下操作:

- debug: msg="{{ files.results | map(attribute='files') | sum(start=[]) | map(attribute='path') | list }}"

有没有一种方法可以在查找插件时使用较小的行
展平
?失败,我有以下错误:
模板字符串时出现模板错误:没有名为“map”的筛选器
map
是标准的jinja2筛选器。您的设置或非常古老的Ansible版本有问题。我发现此问题:。我觉得地图是在jinja2.7中引入的,我正在使用jinja2.6.1。