首页 > 解决方案 > 在一维数组上使用 Jmespath 过滤结果

问题描述

使用 jmespath 并给出下面的 json,我将如何过滤,所以只JobNames返回“分析”开始?

有关更多上下文,json 由 aws cli 命令返回aws glue list-jobs

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

试过这个

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

但它失败了

在函数starts_with()中,值的无效类型:无,预期之一:['string'],收到:“null”

上面我提取了 jmespath 位,但这是我尝试过但失败的整个 aws cli 命令是这个

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

标签: amazon-web-servicesaws-clijmespath

解决方案


我无法对其进行测试,list-jobs但查询部分适用于list-crawlers. 只是替换JobNamesCrawlerNames.

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

推荐阅读