Я пытаюсь фильтровать свойства объекта в 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 и рассуждать, что он должен быть способен на такой задача.