将 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
英文版