我一直在努力想出一种用jq
来任意嵌套字段的方法。 “桶”的级别因调用(不同级别的汇总字段)而异。那么我如何将以下片段中的所有avg_amount
字段求和(理想情况下不对每个.buckets.[]
进行硬编码)?
[
{
"buckets":[
{
"buckets":[
{
"buckets":[
{
"avg_amount":25,
}
],
"destination":"Apple"
},
{
"buckets":[
{
"avg_amount":74,
}
],
"destination":"Google"
}
],
"vendor_name":"Vendor Bee"
},
{
"buckets":[
{
"buckets":[
{
"avg_amount":1000,
}
],
"destination":""
}
],
"vendor_name":""
}
],
"company_id":1
}
]
谢谢!
修复JSON后,查询:
jq '[.. | objects | .avg_amount] | add'
产量1099
。
(这个查询是健壮的w.r.t.关键字“avg_amount”的存在,因为add
将null
处理为0.)
如果手动修复JSON是一个问题,您可以(例如)使用hjson -j
。见https://hjson.org/