【问题标题】:How to set a default value for null values in JMESPath query when using AWS CLI?使用 AWS CLI 时如何在 JMESPath 查询中为空值设置默认值?
【发布时间】:2020-11-03 09:27:38
【问题描述】:

我正在尝试使用带有查询的 AWS CLI 运行命令。该命令可能很简单,例如aws s3api list-buckets --query 'sum(Versions[*].Size)'

但是,有时,某些值可能会返回 null。在上面的例子中,size 可以在没有内容的情况下为 null,并且该命令将返回以下错误:

In function sum(), invalid type for value: None, expected one of: ['array-number'], received: "null"

我怎样才能给它一个默认值?如果实际值为 null,我想将其设置为 0,以便结果中有一些值而不是错误。

【问题讨论】:

  • 你可以试试sum(Versions[*].Size || 0)
  • @Marcin 我试过了,但它返回一个错误,invalid token: Parse error at column 20, token "0" (NUMBER)
  • 这个版本'sum(Versions[*].Size || [`0`])'?注意 0 左右的反引号。
  • 没问题。如果您不介意,我提供了一个答案以供将来参考。
  • @Marcin 绝对!

标签: amazon-web-services command-line-interface aws-cli jmespath


【解决方案1】:

基于 cmets。

解决方案是使用:

aws s3api list-buckets --query 'sum(Versions[*].Size || [`0`])'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 2022-12-13
    • 2012-08-08
    相关资源
    最近更新 更多