gpt4 book ai didi

json - jq - 计算匹配选择的项目数

转载 作者:行者123 更新时间:2023-12-05 03:51:52 24 4
gpt4 key购买 nike

我正在尝试计算与某些属性匹配的记录数。

如果我有这样的 json:

[
{
"id": 0,
"count": 1
},
{
"id": 1,
"count": 1
},
{
"id": 2,
"count": 0
}
]

我正在尝试获取计数为 1 的记录数。

我可以获得匹配的记录:

$ jq '.[] | select(.count == 1)' in.json
{
"id": 0,
"count": 1
}
{
"id": 1,
"count": 1
}

但是输出中列出了两项,所以我不能直接使用length 来计算它们。相反,使用 length 给出每个项目的长度。

$ jq '.[] | select(.count == 1) | length' in.json
2
2

如何统计select匹配了多少条记录?

最佳答案

为了提高效率,应该避免在构造数组上使用length。相反,最好使用面向流的方法。

这是一个有效的解决方案,为了方便起见,它使用通用的 count 函数,定义为:

def count(stream): reduce stream as $i (0; .+1);

有了这个定义,解决方案很简单:

count(.[] | select(.count==1))

关于json - jq - 计算匹配选择的项目数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62618271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com