将 csv 中数据转成分层的 json

例题描述和简单分析

有 csv 文件 csv.csv,数据如下所示:

metric,value,date

temp_a,622.0,1477895624866

temp_a,-3.0,1477916224866

temp_a,365.0,1477917224866

temp_b,861.0,1477895624866

temp_b,767.0,1477917224866

需要将分类结构的 csv,转为多层 json,结果如下:

[

  {

    "metric":"temp_a",

    "datapoints":[

      [622, 1477895624866],

      [-3, 1477916224866],

      [365, 1477917224866]

    ]

  },

  {

    "metric":"temp_b",

    "datapoints":[

      [861, 1477895624866],

      [767, 1477917224866]

    ]

  }

]

解法及简要说明

在集算器中编写脚本 p1.dfx,如下所示:


A

1

=file("csv.csv").import@ct()

2

=A1.group(metric;~.([value,date]):datapoints)

3

=json(A2)

简要说明:

A1   读取 csv 数据,读成序表

A2  metric分组,每组内有多个 [value,date],命名 datapoints

A3  多层序表转成 json 格式

问答搜集

https://stackoverflow.com/questions/61369904/how-to-read-a-csv-to-a-nested-json-with-jackson-java