gpt4 book ai didi

jq - 如何根据属性值的 'whitelist' 选择对象

转载 作者:行者123 更新时间:2023-12-04 01:30:34 25 4
gpt4 key购买 nike

既然一个例子胜过千言万语,假设我有以下 JSON 流:

{"a": 0, "b": 1}
{"a": 2, "b": 2}
{"a": 7, "b": null}
{"a": 3, "b": 7}

我怎样才能保留 .b 属性是 [1, 7] 之一的所有对象(实际上列表要长得多,所以我不不想做 select(.b == 1 or .b == 7))。我正在寻找类似这样的东西:select(.b in [1, 7]),但我在手册页中找不到我要找的东西。

最佳答案

$value in $collection 可以使用模式 select($value == $collection[]) 来实现。一个更有效的替代方法是 select(any($value == $collection[]; .)) 所以你的过滤器应该是这样的:

[1, 7] as $whitelist | select(any(.b == $whitelist[]; .))

将数组放在变量中有其好处,因为它可以让您使用参数轻松更改白名单。

$ jq --argjson whitelist '[2, 7]' 'select(any(.b == $whitelist[]; .))'

关于jq - 如何根据属性值的 'whitelist' 选择对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34878915/

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