如何使用jq过滤具有混合类型元素的数组

马吉克曼

给定下面的JSON,我正在尝试选择所有command元素。我的问题是,"checkout"字符串使我选择所有"run"字典变得混乱

我正在尝试通过jq之类的东西,.[].run.command但我不断收到错误消息jq: error (at <stdin>:33): Cannot index string with string "run"

如何排除"checkout"选择字符串?

[
  "checkout",
  {
    "run": {
      "command": "pip install cfn-lint pycodestyle pyflakes",
      "name": "Install Dependencies"
    }
  },
  {
    "run": {
      "command": "find stacks -type f -name \"*.yml\" -exec cfn-lint -i E3016 -i E3012 -i E1029 --template {} \\; | tee -a output.txt",
      "name": "Run cfn-lint"
    }
},
  {
    "run": {
      "command": "find stacks -type f -name \"*.py\" -exec pyflakes {} \\; | tee -a output.txt",
      "name": "Run pyflakes"
    }
  },
  {
    "run": {
      "command": "pycodestyle --show-source --show-pep8 --ignore=E501,W605 stacks/src | tee -a output.txt",
      "name": "Run pycodestyle"
    }
  },
  {
    "run": {
      "command": "if [[ -s output.txt ]]; then cat output.txt; exit 1; fi",
      "name": "Exit if there are validation warnings/errors"
    }
  }
]

这是您所显示的过滤器的简单变体形式的解决方案:

.[].run?.command

“?” try包装纸的语法糖

这是另一个变体,它还建议其他人:

.[] | objects | .run.command

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

获取具有混合类型的数组的每个索引的元素类型

如何在OpenAPI 2.0中定义混合类型的数组(具有不同的元素类型)?

如何使用jq按元素属性值过滤对象数组?

如何过滤具有嵌套数组的元素的数组?

如何使用 Mongoose 查询过滤到在数组类型字段中具有指定值的文档?

如何查找/过滤具有最小正差的数组元素

CSV 过滤具有混合数据类型的列

如何使用jq过滤json对象数组?

如何在python3中创建具有混合类型的多维数组?

提取具有混合元素类型的表数据

如何使用管道过滤具有不同参数的数组

如何使用AngularJS应用过滤器以获取JSON数组中的JSON对象中具有相同值的元素

Ruby-解压缩具有混合类型的数组

从数组创建具有混合数据类型的表

具有不同类型元素的数组

使用 jq 过滤掉元素的特定 json 数组字段

如何使用Go将具有不同类型的一个元素的数组封送为JSON?

如何通过元素属性值过滤对象数组并使用jq选择第一个元素?

朱莉娅:如何根据具有特定值的类型字段访问类型数组中的元素

如何通过忽略具有未定义属性的元素来过滤数组?

如何过滤具有2万个元素的数组中的自动完成数据?

使用 javascript 或 lodash 过滤具有多个元素及其值的对象数组

Python:具有混合键类型的字典如何工作?

Typescript:每个元素具有不同类型的类型数组

如何将具有混合子类型的嵌套子对象的对象转换为JS中的数组?

如何将具有混合数据类型的 3D 数组加载到 Tensorflow 中进行训练?

JS:如何过滤对象数组,向第一个对象添加具有其余过滤元素值的键?

PostgreSQL JOIN具有数组类型和数组元素

如何使用jq从JSON数组中选择具有特定ID的对象?