gpt4 book ai didi

json - jq - 过滤器数组不包含

转载 作者:行者123 更新时间:2023-12-02 09:10:05 25 4
gpt4 key购买 nike

我正在使用应用程序 jq 从命令行过滤 json 文件。

https://stedolan.github.io/jq/

这是一个代表问题的糟糕示例。如何过滤此集合以包含所有非红色或非圆形的水果?

水果.json:

[
{
"name": "banana",
"tags": [
"yellow",
"long"
]
},
{
"name": "apple",
"tags": [
"red",
"round"
]
},
{
"name": "orange",
"tags": [
"orange",
"round",
"colored"
]
}
]

这将找到所有红色水果:
jq '.[] | select(.tags[] == "red")' fruit.json

我如何找到所有不是红色的水果?

是的,我知道在这个例子中,用于不同目的的标签数组不是好的设计。现实世界的数据有一个数组是有充分理由的。我只是在寻找如何搜索数组不包含值的记录。

这会产生奇怪的结果,包括包含“苹果”的重复项,因为“圆形”不是“红色”,因此匹配。
jq '.[] | select(.tags[] != "red")' fruit.json

建议?

最佳答案

这应该有效:

jq '.[] | select(.tags | index("red") | not)' fruit.json

当您这样做时 .tags[] ,它将遍历数组 tags 中的所有元素一一,这就是为什么你得到重复的结果。

关于json - jq - 过滤器数组不包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53512985/

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