linux 我试图使用jq从json中提取字符串,但得到一个错误“无法用字符串“num_objects”索引字符串“

stszievb  于 2023-10-16  发布在  Linux
关注(0)|答案(1)|浏览(109)

我的json代码片段如下

{
                "bucket": "sample-bucket",
                "tenant": "",
                "num_objects": 189398,
                "num_shards": 0,
                "objects_per_shard": 189398,
                "fill_status": "OVER 100.000000%"
            }

我的预期输出是sample-bucket,我想使用“num_objects”选择它,所以我在下面提出了一个jq过滤器。

cat testjql.txt | jq  -r '.bucket | select(.num_objects == '189398')'

但是得到了这样一个错误。

jq: error (at <stdin>:8): Cannot index string with string "num_objects"

我试着用不同的方式玩它,但在预期的输出上没有运气。

vbkedwbf

vbkedwbf1#

这个过滤器首先选择“num_objects”属性等于189398的对象,然后从该对象中提取“bucket”属性的值,所以这应该会给你给予“sample-bucket”的预期输出!

cat testjql.txt | jq -r 'select(.num_objects == 189398).bucket'

输出

sample-bucket

相关问题