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