{ "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} ] }
这个问题几乎和我的一样
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)}]}