我有以下字典,里面有一个列表(项目)
{
"json": {
    "data": {
        "devices": {
            "items": [
                {
                    "configurationStatus": "SYNCED",
                    "conflictDetectionState": "IN_SYNC",
                    "connectivityState": "ONLINE",
                    "deviceType": "ASA",
                    "highAvailability": "OFF",
                    "interfaces": null,
                    "specificDevice": {
                        "namespace": "asa",
                        "type": "configs",
                        "uid": "12313131231",
                        "vpnId": null
                    },
                    "uid": "1231312313"
                }
            ],
            "metadata": {
                "count": 1
            }
        }
    }
}
}
我已将此输出注册在名为“输出”的变量下。如果我逐行查找项目,我可以毫无问题地访问它们
    - debug:
        var: output.json
    
好的!
    - debug:
        var: output.json.data
好的!
    - debug:
        var: output.json.data.devices
好的!
    - debug:
        var: output.json.data.devices.items
ok: [localhost] => {
    "output.json.data.devices.items": "<built-in method items of dict object at 0x7f88386c8c00>"
当我来到项目并想要访问configurationStatus或deviceType时,我收到上面的错误。我怀疑这是由于项目列表造成的。知道如何访问和注册这些变量吗?
问题是 ' 'items是字典类上方法的名称,当使用.符号 ( foo.bar.baz) 时,属性会在键之前解析。因此您无法访问items使用此语法命名的键。
相反,试试这个:
    - debug:
        var: output.json.data.devices['items']
该语法将更喜欢键。