Python csv.reader() 转为 JS?
我有一段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
}