如何使用Javascript从csv文件中查找每列的数据类型?

时间:2015-03-16 10:36:28

标签: javascript csv

我试图使用Java Script查找每列的数据类型,它打印数字,字符串和日期的字符串数据类型。

我需要每个列数据类型,无论是日期,字符串,数字还是浮点数。

没有CSV,它会打印正确的数据类型。

没有CSV文件的工作示例

var num=15;
var str="xyz";
console.log(typeof num);
console.log(typeof str);

Output
number
string

但是使用csv文件会打印所有列的字符串。

我的CSV文件是:

01/01/1991,12,xyz,14.4
01/01/1992,20,abc,20.5
01/02/1980,78,xy,60.8

我正在使用Papa Parse javascript插件获取每个列,然后检查数据类型。

如何从CSV文件中获取每列的数据类型? 有没有其他方法可以将CSV解析到我们可以在特定行或列上遍历的数组?

1 个答案:

答案 0 :(得分:1)

当您在javascript变量中加载CSV时,该变量是一个字符串。

您必须将csv提取到JSON数组中,并且必须相应地转换每个变量。

代码:

  $.ajax({
    type: "GET",
    url: "sample.csv",
    success: function (data) { loadData(data); }
});

    /*var data = 'date,name,value\n\
        01/01/1991,xyz,14.4\n\
        01/01/1992,abc,20.5\n\
        01/02/1980,xy,60.8';
    loadData(data);*/

  function loadData(data1){
       console.log(data1);
        var dataPoints = data1.split(/\r\n|\n/);
         //console.log(lines);
       var headers = dataPoints[0].split(','); // if you have header
      var lines = [];
      console.log(headers);
        console.log(dataPoints.length);
     for (var i = 1; i < dataPoints.length; i++) {
        //console.log(i);
          var point = dataPoints[i].split(',');
        //console.log(point);
         if (point.length == headers.length) {
        var json= {};
        for (var j = 0; j < headers.length; j++) {
         if(headers[j]=='date'){
         json[headers[j]] = new Date(point[j]);
        }else if(headers[j]=='value'){
           //console.log(point[j]);
         json[headers[j]] = Number(point[j]);
        }else{
         json[headers[j]] = point[j];
        }

    }
    lines.push(json);
    console.log(json);
   }
 }

的console.log(线); }

示例CSV:

date,name,value
01/01/1991,xyz,14.4
01/01/1992,abc,20.5
01/02/1980,xy,60.8

修改后的代码