#jmespath
#jmespath
Вопрос:
{
"data": {
"edges": [
{
"node": {
"id": "ABC12345",
"tags": [
{
"name": "Dummy"
},
{
"name": "HelloT"
}
]
}
},
{
"node": {
"id": "XYZ123",
"tags": [
{
"name": "Testing"
},
{
"name": "Test"
}
]
}
}
]
}
}
Я хотел бы использовать jmespath для приведенного выше json: верните узел, если node.tags[].name не содержит Hello* (starts_with)
Я попробовал следующее
(data.edges[].node)[? (tags[])[? !starts_with(name, 'Hello') ] ]
Однако он по-прежнему возвращает первый узел, потому что он имеет tags.name == ‘Пустышка’
Любой совет?
Ответ №1:
Столкнулся с тем же; оказывается, обертывание команды (в вашем случае, starts_with
) в круглых скобках должно сработать.
(data.edges[].node)[? (tags[])[? !(starts_with(name, 'Hello')) ] ]