从ansible json_查询中删除括号

从ansible json_查询中删除括号,ansible,Ansible,我试图在ansible中解析json,得到了所需的值,但输出是一个数组。我怎样才能得到价值呢 json示例: { "Version": "2015-08-13", "Accounts": [{ "AccountName": "account1", "Regions": [{ "RegionName": "region1", "RegionId": "region1", "RegionDetails": [{

我试图在ansible中解析json,得到了所需的值,但输出是一个数组。我怎样才能得到价值呢

json示例:

{
"Version": "2015-08-13",
"Accounts": [{
    "AccountName": "account1",
    "Regions": [{
        "RegionName": "region1",
        "RegionId": "region1",
        "RegionDetails": [{
            "id": "id1",
            "version": "v1"
        }, {
            "id": "id2",
            "version": "v2"
        }]
    }]
}, {
    "AccountName": "account2",
    "Regions": [{
        "RegionName": "region1",
        "RegionId": "region1",
        "RegionDetails": [{
            "id": "id1",
            "version": "v1"
        }, {
            "id": "id2",
            "version": "v2"
        }]
    }]
}]
}
Ansible剧本示例:

    - name: Set Global Vars
      hosts: localhost
      tasks:    
        - name: print json file
          debug:
            msg: "{{ (lookup('file','./example.json') | from_json) | json_query(query) }}"
          vars:
            query: "Accounts[?AccountName=='account1'][Regions[?RegionName=='region1'].RegionId]"
      register: region_id
可转换输出:

    TASK [print json file] *********************************************************
ok: [localhost] => {
    "msg": [
        [
            [
                "region1"
            ]
        ]
    ]
}
如您所见,值“region1”仍然是嵌套的。我怎样才能得到正确的价值呢


谢谢

您的原始数据具有嵌套列表:
帐户
是一个列表,每个帐户包含
区域
列表

使用JMESPath查询,您可以根据某些条件筛选列表,但结果仍然是一个列表,因为您的数据可能有多个帐户名为
AccountName=='account1'

如果您只对该账户的首次发现账户和首次发现区域感兴趣,您可以按如下方式修改查询:

Accounts[?AccountName=='account1'] | [0].Regions[?RegionName=='region1'] | [0].RegionId

原始数据具有嵌套列表:
帐户
是一个列表,每个帐户包含
区域
列表

使用JMESPath查询,您可以根据某些条件筛选列表,但结果仍然是一个列表,因为您的数据可能有多个帐户名为
AccountName=='account1'

如果您只对该账户的首次发现账户和首次发现区域感兴趣,您可以按如下方式修改查询:

Accounts[?AccountName=='account1'] | [0].Regions[?RegionName=='region1'] | [0].RegionId

啊,我明白了。谢谢你的解释!啊,我明白了。谢谢你的解释!