【问题标题】:JSON parsing - get the average per group with JQJSON 解析 - 使用 JQ 获取每组的平均值
【发布时间】:2019-06-11 21:50:15
【问题描述】:

我有以下 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}
  ]
}

我该怎么做?

【问题讨论】:

    标签: json date grouping aggregate jq


    【解决方案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)}]}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-01
      • 1970-01-01
      • 2022-11-10
      • 2020-03-09
      • 1970-01-01
      相关资源
      最近更新 更多