Кто-нибудь знает, какой фильтр json-query можно использовать для выбора питания Tigger в образце JSON ниже? JSON - это упрощенная резервная копия для массивного и относительно сложного блога AWS.ansible json-query path для выбора элемента по содержанию
Некоторые предпосылки: Мне было приятно узнать, что Ansible имеет фильтр json-query. Учитывая, что я пытался выбрать элемент из блога AWS JSON, это выглядело так, как будто это было именно то, что мне нужно. Однако я быстро столкнулся с проблемами, потому что объекты AWS имеют теги, и мне нужно было выбирать элементы по тегу. Я пробовал пути выбора, эквивалентные Foods[Tags[(Key='For') & (Value='Tigger')]]
и тому подобное, но не смог заставить его работать. Используя автономную библиотеку json-запросов, такую как https://www.npmjs.com/package/json-query, я могу использовать атрибут parent
, но, похоже, он не находится в Ansible, совершенно не считая отклонения от основной идеи json-запроса.
Возможно, было бы лучше обойти проблему и использовать селектор jsonpath. jsonpath похож на json-query и является переводом из xpath.
{ "Foods" :
[ { "Id": 456
, "Tags":
[ {"Key":"For", "Value":"Heffalump"}
, {"Key":"Purpose", "Value":"Food"}
]
}
, { "Id": 678
, "Tags":
[ {"Key":"For", "Value":"Tigger"}
, {"Key":"Purpose", "Value":"Food"}
]
}
, { "Id": 911
, "Tags":
[ {"Key":"For", "Value":"Roo"}
, {"Key":"Purpose", "Value":"Food"}
]
}
]
}
Большое спасибо!
Ссылки:
- json_query в анзибль: http://docs.ansible.com/ansible/playbooks_filters.html#json-query-filter
- JSON-запрос автономный узел: https://www.npmjs.com/package/json-query
- JSON-запрос автономный питон: https://pypi.python.org/pypi/jsonquery/
Я хотел бы, чтобы пометить это вопрос с json-query, но у него нет точек для этого.
Не могли бы вы указать ожидаемый результат? – techraf