JQ不与IN一起使用不起作用或有任何影响



此代码按预期工作:

jq --argjson BL ${BL} '.rows[] | select(.cells[] | .value | IN($BL[]))

它返回一个元素列表,其中包含$BL 中的值

我想返回所有不在$BL中的,所以我使用|而不是

它返回的结果与没有|not的结果完全相同,似乎没有什么区别。

jq --argjson BL ${BL} '.rows[] | select(.cells[] | .value | IN($BL[]) | not)

使用下面的重新调谐什么都没有

jq --argjson BL ${BL} '.rows[] | select(.cells[] | .value | IN($BL[]|not))

使用IN和NOT有没有遗漏一件简单的事情?

作为参考,$BL是和电子邮件地址上的数组,试图进行api调用并返回$BL 中没有列出电子邮件的所有元素

您的select接收一系列布尔值,.cells数组中的每个项都有一个布尔值。使用not会反转所有这些值,这意味着如果您有一组混合的布尔值,它仍然是混合的,并且在任何一种情况下,select都会将正在计算的值转换为true

解决方案是使用anyall来聚合这些布尔值。如果没有任何样本数据,我想你正在寻找

.rows[] | select(any(.cells[]; .value | IN($BL[])) | not)

相关内容

最新更新