Я пытаюсь фильтровать свойства объекта в jmespath на основе значения подзадачи и хочу включать только те свойства где для подзадачи задано определенное значение.
На основании данных примера:
{
"a": {
"feature": {
"enabled": true,
}
},
"b": {
},
"c": {
"feature": {
"enabled": false
}
}
}
Я хотел бы получить объект со всеми свойствами, в которых функция включена.
{
"a": {
"feature": {
"enabled": true,
}
}
}
Я решил, что могу использовать этот запрос jmespath для фильтрации объектов, где property. enabled установлено значение true. Unfortunateley, похоже, не работает и вместо этого возвращает пустой массив.
*[?feature.enabled==`true`]
*.feature.enabled или *[feature.enabled] возвращает только логические значения без какого-либо контекста.
Даже если *[?feature.enabled== true ] будет работать, это будет просто массив значений свойств, но мне нужны ключи (a и c). Есть ли способ сделать это в jmespath?
Это все часть незанятой пьесы, поэтому, конечно, есть способ добиться выбора по-другому (шаблоны Jinja2 или пользовательский плагин), но я хотел попробовать jmespath и рассуждать, что он должен быть способен на такой задача.