Filtre o objeto por propriedade e selecione com a chave jmespath
Estou tentando filtrar propriedades de um objeto emjmespath com base no valor de uma subpropriedade e deseja incluir apenas as propriedades em que a subpropriedade está definida como um valor específico.
Com base neste exemplo de dados:
{
"a": {
"feature": {
"enabled": true,
}
},
"b": {
},
"c": {
"feature": {
"enabled": false
}
}
}
Eu gostaria de obter um objeto com todas as propriedades em que o recurso está ativado.
{
"a": {
"feature": {
"enabled": true,
}
}
}
Imaginei que poderia usar essa consulta jmespath para filtrar os objetos ondeproperty. enabled
está definido como verdadeiro. Infelizmente, ele não parece funcionar e, em vez disso, retorna uma matriz vazia.
*[?feature.enabled==`true`]
*.feature.enabled
ou*[feature.enabled]
retorne apenas os valores booleanos sem nenhum contexto.
Mesmo se*[?feature.enabled==
verdadeiro]
funcionaria, seria apenas uma matriz dos valores da propriedade, mas preciso das chaves (a
ec
) também. Existe alguma maneira de fazer isso acontecer no jmespath?
Isso tudo faz parte de um manual de instruções, por isso certamente haveria uma maneira de conseguir a seleção de uma maneira diferente (modelos Jinja2 ou plug-in personalizado), mas eu queria experimentar o jmespath e raciocinaria que seria capaz de realizar essa tarefa.