gpt4 book ai didi

json - 如何使用 jq 过滤包含对象和字符串的数组?

转载 作者:行者123 更新时间:2023-12-05 08:36:50 24 4
gpt4 key购买 nike

所以我对 jq 有这样的输入:

[
"foo",
{
"a": 1,
"b": 2
},
{
"a": 1,
"b": 3
},
{
"a": 2,
"b": 2
}
]

我想选择 b 为 2 的所有对象作为数组:

[
{
"a": 1,
"b": 2
},
{
"a": 2,
"b": 2
}
]

但是列表中的字符串让这变得困难。

如果我尝试:

.[]|选择(.b == 2)

然后我得到错误:

jq:错误(位于/tmp/data.json:14):无法用字符串“b”索引字符串

有什么帮助吗?

最佳答案

其他答案建议使用 ? 这很好。另一种方法是使用内置的 objects 过滤器,它会丢弃不是对象的输入:

map(objects | select(.b == 2))
# ^^^^^^^ ^^^^^^^^^^^^^^^
# A B

A:过滤掉非对象
B:此时,我们正在处理对象

稍微更冗长但效率可能更低?

关于json - 如何使用 jq 过滤包含对象和字符串的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67624282/

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