Javascript csv数据到d3中嵌套的json树
我有一个csv数据文件,看起来像这样 root,y,i,5 root,c,b,a,7 root,c,b,z,2 根,y,i,5 根,c,b,a,7 根,c,b,z,2 我希望生成类似于以下数据文件的内容: { "name": "root", "children": [ { "name": "y", "children": [ { "name": "i", "value": 5 } ] }, { name: "c", "children": [ { "name": "b", "children": [ { "name": "a", "value": 7 }, { "name": "z", "value": 2 } ] } ] } ] }Javascript csv数据到d3中嵌套的json树,javascript,json,csv,tree,d3.js,Javascript,Json,Csv,Tree,D3.js,我有一个csv数据文件,看起来像这样 root,y,i,5 root,c,b,a,7 root,c,b,z,2 根,y,i,5 根,c,b,a,7 根,c,b,z,2 我希望生成类似于以下数据文件的内容: { "name": "root", "children": [ { "name": "y", "children": [ { "name": "i", "value": 5 }
var nested_data = d3.nest()
.key(function(d) { return d[0]; })
.key(function(d) { return d[1]; })
.entries(csv_data);
{
“名称”:“根”,
“儿童”:[
{
“名称”:“y”,
“儿童”:[
{
“姓名”:“我”,
“价值”:5
}
]
},
{
名称:“c”,
“儿童”:[
{
“名称”:“b”,
“儿童”:[
{
“姓名”:“a”,
“价值”:7
},
{
“名称”:“z”,
“价值”:2
}
]
}
]
}
]
}
我看到其他人提出了一个[类似的问题](,但数据甚至是在每个csv行都有n
元素的意义上。我有不同长度的n
有人能帮忙吗?我会使用d3 nest函数来完成这项工作。您可以在这里找到有关如何使用它的文档: 解决方案如下所示: { "name": "root", "children": [ { "name": "y", "children": [ { "name": "i", "value": 5 } ] }, { name: "c", "children": [ { "name": "b", "children": [ { "name": "a", "value": 7 }, { "name": "z", "value": 2 } ] } ] } ] }
var nested_data = d3.nest()
.key(function(d) { return d[0]; })
.key(function(d) { return d[1]; })
.entries(csv_data);
我将使用d3 nest函数来完成此操作。您可以在此处找到有关如何使用它的文档: 解决方案如下所示: { "name": "root", "children": [ { "name": "y", "children": [ { "name": "i", "value": 5 } ] }, { name: "c", "children": [ { "name": "b", "children": [ { "name": "a", "value": 7 }, { "name": "z", "value": 2 } ] } ] } ] }
var nested_data = d3.nest()
.key(function(d) { return d[0]; })
.key(function(d) { return d[1]; })
.entries(csv_data);
听起来你想改变生成该数据的任何内容来生成层次结构。CSV实际上并不适用于这种不规则的格式,你在处理它时会遇到困难。听起来你想改变生成该数据的任何内容来生成层次结构。CSV实际上不适用于ra像这样的格式,您在处理时会遇到困难。这只有在定义了列数的情况下才有效。否?我的问题是我的列是可变的。如果您只想按前两列分组,这应该可以。如果您需要使用任意列,您可以将其与下划线.js和tr结合使用避免使用新的嵌套数据,在适当的时候再次嵌套。这仅在定义了列数的情况下才有效。否?我的问题是我的列是可变的。如果只想按前两列分组,这应该可以。如果需要使用任意列,可以将其与下划线.js结合,并遍历thr通过新的嵌套数据,在适当的时候再次嵌套。