如何使用 Java 脚本从 csv 文件中查找每列的数据类型

How to find data type of each column from csv file using Java Script?

本文关键字:查找 数据类型 文件 Java 何使用 脚本 csv      更新时间:2023-09-26

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

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

如果没有 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 解析为我们可以遍历特定行或列的数组?

当您在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);
   }
 }

控制台.log(行);}

示例 CSV:

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

修改后的代码