Отфильтруйте результаты с помощью Jmespath на одномерном массиве

Используя jmespath и учитывая приведенный ниже json, как мне отфильтровать, чтобы возвращались только JobNames, начиная с аналитики?

Для большего контекста json был возвращен командой aws cli aws glue list-jobs

{
    "JobNames": [
        "analytics-job1",
        "analytics-job2",
        "team2-job"
  ]
}

Пробовал это

JobNames[?starts_with(JobNames, `analytics`)]

но это не удалось с

В функции start_with () недопустимый тип значения: None, ожидалось одно из: ['string'], получено: null

Выше я извлек бит jmespath, но вот вся команда aws cli, которую я пробовал и потерпел неудачу, это

aws glue list-jobs --query '{"as_string": to_string(JobNames[?starts_with(JobNames, `analytics`)])}'

person navig8tr    schedule 02.07.2020    source источник


Ответы (1)


Я не смог проверить это на list-jobs, но часть запроса работает на list-crawlers. Просто заменил JobNames на CrawlerNames.

aws glue list-jobs --query 'JobNames[?starts_with(@, `analytics`) == `true`]'
person Ersoy    schedule 02.07.2020