我有一个带有多个对象ID的json文件,我需要一个基于命名约定排除不同ID的查询。这些本质上是“或”的。我以为我在此查询中具有它,但它们仍出现在输出中。
如果我分别对它们运行查询,则可以使用它,但是我需要添加一个大列表。
作品
orderItems = OrderItem.objects.all()
packItems = Pack.objects.all()
for packItem in packItems:
for orderItem in orderItems:
if orderItem.pack == packItem:
print('Yeah, you found one of them')
不起作用
cat file.json | jq '.interface[] | select(.description | contains ("VLL") | not )'
我用逗号和引号尝试了几种不同的方式,但是没有运气。
我远吗?
如果有帮助(可能会变得更糟),我还计划在bash脚本中运行它
谢谢
答案 0 :(得分:0)
我远吗?
如果您使用test/1
而不是contains
,并进行了相应的调整,则不会:
.interface[]
| select(.description | test ("VLL|2002089|otherstuff" ) | not )
test的参数被解释为正则表达式。当然还有其他选择,但是如果使用正则表达式是合适的,那么test
将是合适的。
如果您有一个字符串黑名单,并且希望使用字符串相等性作为准则,请考虑:
["VLL","2002089","otherstuff"] as $blacklist
| .interface[]
| select(.description | IN($blacklist[]) | not)