JMESPath JSON фильтр с несколькими совпадениями
У меня есть блок json, который выглядит примерно так (вы уже догадались из AWS)
{ "Vpcs":[
{
"VpcId":"vpc-blabla1",
"OtherKey":"Value"
},
{
"VpcId":"vpc-blabla2",
"OtherKey":"Value"
},
{
"VpcId":"vpc-blabla3",
"OtherKey":"Value"
},
{
"VpcId":"vpc-blabla4",
"OtherKey":"Value"
}]
}
Я хочу использовать JMESPath для получения значения OtherKey для vpc-blabla1 и vpc-blabla3 (например, может быть любой список vpc-id)
Я могу получить Blabla1 с фильтром JMESpath
Vpcs[?VpcId=='blabla1'].OtherKey
Но я не могу найти синтаксис для нескольких значений? Я пробовал синтаксис Or || и составной синтаксис | но ни один не работает? - Смотрите ниже для вещей, которые я пытался.
Vpcs[?VpcId=='blabla1' || 'blabla1'].OtherKey
Vpcs[?VpcId=='blabla1' || ?VpcId=='blabla1'].OtherKey
Vpcs[(?VpcId=='blabla1') || (?VpcId=='blabla1')].OtherKey
Vpcs[?VpcId=='blabla1' | ?VpcId=='blabla1'].OtherKey
Какие-либо предложения? Возможно ли это, или мне придется собирать по одному набору результатов за раз и объединять результаты, которые я хочу?
1 ответ
Общий синтаксис для нескольких [? expr1 || expr2
] так что в вашем случае вы можете использовать:
Vpcs[?VpcId=='vpc-blabla1' || VpcId=='vpc-blabla2'].OtherKey
Другой вариант, если у вас много идентификаторов VPC, для которых вы ищите, вы также можете сказать:
Vpcs[?contains(`["vpc-blabla1", "vpc-blabla2"]`, VpcId)].OtherKey