解析CSV文件的问题

时间:2015-07-24 21:41:56

标签: javascript jquery csv

所以我编写了一个程序来获取两个包含来自域的水位数据的CSV文件。数据存储为对象数组,然后添加到我页面上的两个表中。

我使用JQuery CSV来解析文件。

我遇到的问题是文件格式不是很好(见下文),导致某些数据以未定义的形式返回。我知道其他一切正常,因为我得到的表格中有一些数据显示正确。

有没有人知道我应该在我的代码中做些什么来解决这个问题,以便正确存储水位?

CSV文件令人讨厌的格式化示例(下面的前两行实际上全部在CSV中的一行:

   ID,Date,Water Level / Niveau d'eau (m),Grade,Symbol / symbole,QA/QC,Discharge / Débit (cms),Grade,Symbol / Symbole,QA/QC

08MG022,2015-07-22T00:00:00-08:00,9.440,,,1,0.000,,,1
08MG022,2015-07-22T00:05:00-08:00,9.435,,,1,0.000,,,1
08MG022,2015-07-22T00:10:00-08:00,9.436,,,1,0.000,,,1
08MG022,2015-07-22T00:15:00-08:00,9.439,,,1,0.000,,,1
08MG022,2015-07-22T00:20:00-08:00,9.433,,,1,0.000,,,1
08MG022,2015-07-22T00:25:00-08:00,9.441,,,1,0.000,,,1
08MG022,2015-07-22T00:30:00-08:00,9.439,,,1,0.000,,,1

我的代码:

              $(function() {
$.ajax({
    type: "GET",
    url: "http://crossorigin.me/http://dd.weather.gc.ca/hydrometric/csv/BC/hourly/BC_08MH001_hourly_hydrometric.csv",   //CSV file for Vedder data, note use of CORS Proxy.
    dataType: "text",
    success: function(data) {getWL(data);
                $(function() {
                    $("#vedTable").makeTable();
                    });
                }
 });


 $.ajax({
    type: "GET",
    url: "http://crossorigin.me/http://dd.weather.gc.ca/hydrometric/csv/BC/hourly/BC_08MG022_hourly_hydrometric.csv",       //CSV file location for Chehalis data, uses. CORS proxy
    dataType: "text",
    success: function(data) {getWL(data);
                $(function() {
                    $("#chehaTable").makeTable();
                    });
                }
 });
 });


function getWL(data){

var waterArray = $.csv.toObjects(data);                                 //Water level data parsed and added to array. jquery-csv used here.

$(function() {

    $.fn.makeTable = function(){    
    var _elem = $(this);                                    

    var output = '<table class="generaltable"><tr><th>Date</th><th>Water Level</th></tr>';


    for (var j in waterArray){
        output+= '<tr><td>' +waterArray[j].Date+ '</td><td>' +waterArray[j].Date+ '</td></tr>';

        }
        output +="</table>";


    return _elem.append(output);
    };
});

}

1 个答案:

答案 0 :(得分:0)

将此值用于第二列:waterArray[j]['Water Level / Niveau d\'eau (m)'](注意单引号的转义)以获取水位数据。

不过,他们漂亮的小工具有助于确定问题:http://jquery-csv.googlecode.com/git/examples/basic-usage.html

相关问题