d3.nest()将csv转换为json

问题描述:

我想使用d3.nest()从csv创建一个嵌套的json文件,但是,我无法获得嵌套权限。我的输出是这样的: enter image description hered3.nest()将csv转换为json

这是接近但不quite-我希望值是 关键 值: 0:等 1:等

这里是我的代码:

d3.csv( “数据/ FIFA-matches.csv”,功能(错误,matchesCSV){

//Loads in the tree information from fifa-tree.csv and calls createTree(csvData) to render the tree. 
    matchesCSV.forEach(function(d, i) { 

     this.teamData = d3.nest() 
      .key(function(d) { 
       return d.Team; 
      }) 

     .rollup(function(d) { 
       return { 
        Result: { 'Label': d.Result, 'Rank': 'test' }, 

        // total: d3.sum(v, function(d) { return d.amount; }), 
        // avg: d3.mean(v, function(d) { return d.amount; }) 
       } 
      }) 
      .entries(matchesCSV); 
     console.log(this.teamData); 
    }); 

    d3.csv("data/fifa-tree.csv", function(error, treeCSV) { 

     //Create a unique "id" field for each game 
     treeCSV.forEach(function(d, i) { 
      //console.log(d); 
      d.id = d.Team + d.Opponent + i; 
      d.type = d.Type; 


     }); 

在正确的方向任何信息将非常感谢!

这里是CSV结构的一个例子:

队的对手,目标方面,失球,台达目标,胜,负,结果 巴西,德国,1,7,-6,0 ,1,半决赛 德国,阿根廷,1,0,1,1,0,获胜者 阿根廷,荷兰,0,0,0,1,0,半决赛 荷兰,巴西,3,0,3,1 ,0,第四名 巴西,哥伦比亚,2,1,1,1,0,四分之一决赛 法国,德国,0,1,-1,0,1,四分之一决赛

+0

请,更好地解释你所期望的结果是什么(最好是显示阵列的确切结构),现在它不完全明确。另外,请复制/粘贴CSV的几行(包含标题),以便我们可以提供**正在运行的**解决方案。 –

如果你想指定什么是在对应于某个键的每个对象中,您都可以n使用.rollup()功能

this.teamData = d3.nest() 
    .key(function(d) { 
     return d.Team; 
    }).rollup(function(match_object) { 
     return { 
      opponent: match_object[0]["Opponent"], 
      Goals Made: match_object[0]["Goals Made"], 
      ..etc... 
}).entries(matchesCSV); 

,并从treeCSV返回数组

function ReturnTeam(teamname){ 
    for(team in treeCSV) { 
     if(teamname === team.Name) { 
      return team; 
     } 
    } 
} 
+0

嘿谢谢你的答复 - 会匹配对象是一个单独的对象,将提供数据或我能够通过'D'通过? – jrogers12

+0

没问题:)'match_object'和'd'是同一件事的不同名称,我只是认为'match_object'更具描述性 –

+0

啊,这是有道理的。所以汇总的结构非常好,但值不确定。汇总期间我如何访问数据有什么问题吗? – jrogers12