Ansible 获得;错误是:AttributeError:';模块';对象没有属性';例外情况'&引用;在使用json_查询时

Ansible 获得;错误是:AttributeError:';模块';对象没有属性';例外情况'&引用;在使用json_查询时,ansible,json-query,Ansible,Json Query,我试图使用json_查询过滤器从字典列表中提取键、值,但得到一个错误。下面是剧本 1 2 - name: test 3 hosts: localhost 4 vars: 5 testList: [ { "key1": "value11", "key2": "value12", "key3": "value13" }, 6 { "key1": "value21", "key2": "value22",

我试图使用json_查询过滤器从字典列表中提取键、值,但得到一个错误。下面是剧本

  1
  2 - name: test
  3   hosts: localhost
  4   vars:
  5           testList: [ { "key1": "value11", "key2": "value12", "key3": "value13" },
  6                       { "key1": "value21", "key2": "value22", "key3": "value23" },
  7                       { "key1": "value31", "key2": "value32", "key3": "value33" } ]
  8   tasks:
  9        - name: Getting keys
 10          debug:
 11            msg: "{{ testList | json_query('[*].{key1: key1 , key2: key2}')}}"
这是输出

 [WARNING]: No inventory was parsed, only implicit localhost is available

 [WARNING]: Could not match supplied host pattern, ignoring: all

 [WARNING]: provided hosts list is empty, only localhost is available


PLAY [test] ****************************************************************************************************************************************************

TASK [Gathering Facts] *****************************************************************************************************************************************
ok: [localhost]

TASK [Getting keys] ********************************************************************************************************************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: AttributeError: 'module' object has no attribute 'exceptions'
fatal: [localhost]: FAILED! => {"msg": "Unexpected failure during module execution.", "stdout": ""}


PLAY RECAP *****************************************************************************************************************************************************
localhost                  : ok=1    changed=0    unreachable=0    failed=1
只需一个键,它就可以正常工作
“{{testList | json_query('[*].key1')}}”

参考文件


是否有其他筛选器可以从字典列表中获取多个键、值?

升级到最新的Ansible版本

例如,此错误发生在2.1.3.0上(尽管从其中一个警告中的短语判断,您可能使用不同的版本)

以下是当前版本2.4.1.0的结果:

TASK [Getting keys] *****************************************************************************************************
Unaltered: {'msg': [{'key2': u'value12', 'key1': u'value11'}, {'key2': u'value22', 'key1': u'value21'}, {'key2': u'value32', 'key1': u'value31'}]}
ok: [localhost] => {
    "msg": [
        {
            "key1": "value11",
            "key2": "value12"
        },
        {
            "key1": "value21",
            "key2": "value22"
        },
        {
            "key1": "value31",
            "key2": "value32"
        }
    ]
}