我有以下JSON数据:
{
"data": [
{"date": "2018-08-22","value": 3},
{"date": "2018-08-30","value": 5},
{"date": "2018-09-01","value": 5},
{"date": "2018-09-22","value": 9},
{"date": "2018-09-28","value": 4},
{"date": "2018-10-18","value": 2},
{"date": "2018-10-23","value": 1}
]
}
我想获得每月的平均值。 我的预期输出如下:
{
"data": [
{"month": "2018-08","avg": 4},
{"month": "2018-09","avg": 6},
{"month": "2018-10","avg": 3}
]
}
我该怎么做?
答案 0 :(得分:1)
这个问题几乎与
相同JSON parsing - group by date range with JQ
那里给出的解决方案可以很容易地适应这里的问题:
def bucket: sub("-\\d+$"; "");
.data
| reduce .[] as $pair ({};
.[$pair.date | bucket] += [$pair.value])
| {data: [to_entries[] | {month: .key, avg: (.value| add/length)}]}