jmespath将整个字符串排序为一个

时间:2019-10-03 15:01:58

标签: aws-cli jmespath

我正在尝试对数字字段进行排序,但是它似乎依次解析每个字符,因此9'高于11'但低于91

有没有一种方法可以对整个字符串进行排序?

示例数据:

{
  "testing": [
    {"name": "01"},
    {"name": "3"},
    {"name": "9"},
    {"name": "91"},
    {"name": "11"},
    {"name": "2"}
  ]
}

查询:

reverse(sort_by(testing, &name))[*].[name]

结果:

  [
    "91"
  ],
  [
    "9"
  ],
  [
    "3"
  ],
  [
    "2"
  ],
  [
    "11"
  ],
  [
    "01"
  ]
]

可以在http://jmespath.org/

尝试

编辑: 因此,我可以通过将其排序以-V来获得正确的输出,但是没有更简单的方法吗?

1 个答案:

答案 0 :(得分:1)

上下文

  • Jmespath的最新版本截至2020-09-12

用例

  • DevBobDylan希望对JSON ArrayOfObject表中的字符串项进行排序

解决方案

  • 使用Jmespath管道运算符将表达式链接在一起

示例

testing|[*].name|sort(@)

屏幕截图

Result using the Jmespath.org REPL