如何在csv对象数据中插入标头以便使用d3.js进行管理

时间:2014-11-20 14:16:45

标签: javascript csv d3.js

我从csv文件中获取数据以便使用d3.js进行管理。现在我想获得没有头的数据并通过JavaScript代码插入。头部示例:

date,type,brand,model,price
2014-11-27,  electric, tesla, model s , 100000
2014-11-27,  diesel, bmw, m3, 90000 
2014-12-13,  hybrid, toyota, yaris , 20000

我想获取没有标题的数据,如:

2014-11-27,  electric, tesla, model s , 100000
2014-11-27,  diesel, bmw, m3, 90000 
2014-12-13,  hybrid, toyota, yaris , 20000

我得到这样的数据:

d3.csv("fileOrURLpath", function(error, data) {...});

我尝试插入生成数组的标题并按[0]中的标题推送:

cars[0]= {
      date:"",
      type:"",
      brand:"",
      model:"",
      price:""
        };

它不起作用。仅适用于[0]中的第一个。

有没有办法添加标题?没有我什么都不能做。

EDITED

如果文件没有标题,我就不能使用d3.csv。感谢@LarsKotthoff提供的信息。

现在我试过了:

var headers = ["date","type","brand","model","price"].join(",");

d3.text("myPath", function(error, data) {
  data = d3.csv.parse(headers + data); ... });

但仍然无法正常工作。结果是这样的:

 Object
    " 177 ": undefined
    "  7": undefined
    " seat": undefined
    " toledo": undefined
    model: " bengaluru"
    brand: " in"
    date: Sat Dec 13 2014 00:00:00 GMT+0100 (Hora estándar romance)
    type: 7
    index: 0
    price: NaN
    price2014-11-27: " 160 "

1 个答案:

答案 0 :(得分:0)

我得到了解决方案。感谢@LarsKotthoff的帮助。

最后我得到了这样的数据:

// My header
var headers = ["date","type","brand","model","price"].join(",");

// First I get the file or URL data like text
d3.text("myPath", function(error, data) {
  // Then I add the header and parse to csv
  data = d3.csv.parse(headers +"\n"+ data); ... });

希望它有所帮助!