Python csv.reader() 转为 JS?

0 投票
2 回答
1546 浏览
提问于 2025-04-17 18:44

我有一段Python代码,像这样:

import csv
reader = csv.reader(open('myText.txt', 'r'), delimiter=",")
for row in reader:
print row[0] + 'is' + row[1] + '</br>'

我想找一个类似的操作/代码在JS或JQuery中。这个操作的名字也可以告诉我。我正在学习JS,想知道有没有办法获取一个在线或离线的CSV文件,解析它,循环处理,然后根据内容在我的网站上插入一些HTML。

[1]: 更具体地说,我在找reader = csv.reader(open('myText.txt', 'r'), delimiter=",")的JS版本,其他的我可以处理。

注意:myText.txt将会是这个在线文件

2 个回答

2

对于这个CSV文件,我觉得像这样的代码就可以了(只用到了jquery):

$.get('/path/to/pinyinipamapping.csv')
.done(function(csvData) {
    var body = $('body');
    csvData.split(/\r\n|\n/).forEach(function (rowStr) {
        if (rowStr[0] != '#') {
            var row = rowStr.split(',');
            body.append('<p>' + row[0] + 'is' + row[1] + '</p>');
        }
    });
});

不过,这个方法对带引号的逗号等情况就不太适用了。

如果想要更全面的CSV解析,可以看看这段解析CSV数据的Javascript代码,它使用了这篇博客里的代码。另外,你也可以考虑使用jQuery-csv库,不过它现在还在测试阶段。

1

对于一个快速简单的文件,它可能看起来像这样:(这个代码灵感来自于这个 回答

 // Put here the url to the file
 url = "https://raw.github.com/cburgmer/cjklib/master/cjklib/data/pinyinipamapping.csv";

    $.ajax({
        type: "GET",
        url: url,
        dataType: "text",
        success: function(data) {processData(data);}
     });


function processData(allText) {
    // Get an array of lines
    var allTextLines = allText.split(/\r\n|\n/);
    // Get the number of columns using the first row
    var entries = allTextLines[0].split(',');
    var lines = [];

    // while there are elements in the row
    while (entries.length>0) {
        // remove that line, split it and store in our array 
        lines.push(entries.shift().split(','));
    }
    // Now do your stuff with the array lines

}

撰写回答