Отфильтруйте объект по свойству и выберите его с помощью ключа в jmespath

Я пытаюсь отфильтровать свойства объекта вjmespath основаны на значении вложенного свойства и хотят включать только те свойства, для которых вложенное свойство имеет определенное значение.

На основании данных этого примера:

{
  "a": {
    "feature": {
      "enabled": true,
    }
  },
  "b": {
  },
  "c": {
    "feature": {
      "enabled": false
     }
  }
}

Я хотел бы получить объект со всеми свойствами, где эта функция включена.

{
  "a": {
    "feature": {
      "enabled": true,
    }
  }
}

Я подумал, что мог бы использовать этот запрос jmespath для фильтрации объектов, гдеproperty. enabled установлено в true. К сожалению, он не работает и вместо этого возвращает пустой массив.

*[?feature.enabled==`true`]

*.feature.enabled или же*[feature.enabled] вернуть только логические значения без какого-либо контекста.

Даже если*[?feature.enabled==правда] будет работать, это будет просто массив значений свойств, но мне нужны ключи (a а такжеc) также. Есть ли способ сделать это в jmespath?

Все это является частью сборника игр, поэтому, безусловно, был бы способ добиться выбора другим способом (шаблоны Jinja2 или пользовательский плагин), но я хотел попробовать jmespath и решил, что он должен быть способен на такую ​​задачу.

Ответы на вопрос(2)

Ваш ответ на вопрос