Javascript Python csv.reader()到JS?
我有一个python代码,例如:Javascript Python csv.reader()到JS?,javascript,jquery,python,Javascript,Jquery,Python,我有一个python代码,例如: import csv reader = csv.reader(open('myText.txt', 'r'), delimiter=",") for row in reader: print row[0] + 'is' + row[1] + '</br>' 导入csv reader=csv.reader(打开('myText.txt','r'),分隔符=“,”) 对于读取器中的行: 打印行[0]+'是'+行[1]+'' 我在JS或JQuery中寻
import csv
reader = csv.reader(open('myText.txt', 'r'), delimiter=",")
for row in reader:
print row[0] + 'is' + row[1] + '</br>'
导入csv
reader=csv.reader(打开('myText.txt','r'),分隔符=“,”)
对于读取器中的行:
打印行[0]+'是'+行[1]+''
我在JS或JQuery中寻找类似的操作/代码[1]。这一行动的名称也值得欢迎。我正在探索JS,想知道是否有办法获得在线/离线csv,解析它,迭代,在我的网站中相应地注入一些HTML
[1] :更准确地说,我在寻找一个JS翻译的reader=csv.reader(open('myText.txt','r'),delimiter=“,”),我可以管理其余部分
注意:myText.txt将是对于一个快速简单的文件,它可能是这样的:(受此启发的代码)
对于一个快速简单的文件,它可以是这样的:(受此启发的代码)
对于给定的CSV文件,我认为这样做就足够了(只使用
jquery
):
$.get('/path/to/pinyinipamapping.csv')
.done(函数(csvData){
变量body=$('body');
csvData.split(/\r\n |\n/).forEach(函数(rowStr){
if(rowStr[0]!='#'){
var row=rowStr.split(',');
body.append(“”+行[0]+'是“+行[1]+””);
}
});
});
但是,这不适用于带引号的逗号等
要获得更完整的CSV解析,请查看使用源代码的。此外,您可以考虑,虽然它是在beta中。 对于给定的CSV文件,我认为这样的事情应该足够了(只使用代码> jQuery < /代码>):
$.get('/path/to/pinyinipamapping.csv')
.done(函数(csvData){
变量body=$('body');
csvData.split(/\r\n |\n/).forEach(函数(rowStr){
if(rowStr[0]!='#'){
var row=rowStr.split(',');
body.append(“”+行[0]+'是“+行[1]+””);
}
});
});
但是,这不适用于带引号的逗号等
要获得更完整的CSV解析,请查看使用源代码的。此外,你可以考虑,虽然它是在beta版中。在JavaScript中解析文本是很简单的,但是打开文件可能是个问题。你知道javascript在客户端运行吗?或者可以通过url访问该文件?我知道JS在客户端运行。我正在探索JS,想知道是否有办法获得在线/离线csv,解析它,迭代,在我的网站中注入相应的HTML。由于明显的安全原因,你不能用JS打开本地文件。如果它可以通过url访问,那么你可以做你需要的事情(假设它与网站位于同一个域中)。你是说“外部文件”?好的,所以目标csv需要在同一个网站上。我可以在我的网站上复制它,是的。用javascript解析文本非常简单,但是打开文件可能会有问题。你知道javascript在客户端运行吗?或者可以通过url访问该文件?我知道JS在客户端运行。我正在探索JS,想知道是否有办法获得在线/离线csv,解析它,迭代,在我的网站中注入相应的HTML。由于明显的安全原因,你不能用JS打开本地文件。如果它可以通过url访问,那么你可以做你需要的事情(假设它与网站位于同一个域中)。你是说“外部文件”?好的,所以目标csv需要在同一个网站上。我可以在我的网站上复制它,是的。从@Archer的评论中,我了解到只有当我的脚本和csv在同一个域上时,这个代码才会工作,对吗?我认为这不是那么容易。有点复杂。托管服务器需要明确地支持它。此外,它更挑剔,但你应该在回答中提到,这是不完整的。例如,它不会忽略原始csv文件中的注释行(以“#”开头)。从@Archer的注释中,我了解只有当我的脚本和csv在同一个域上时,此代码才能工作,对吗?我认为这不是那么容易。有点复杂。托管服务器需要明确地支持它。此外,它更挑剔,但你应该在回答中提到,这是不完整的。例如,它不会忽略原始csv文件中的注释行(以“#”开头)。我对您的答案进行了检查,但分两部分验证了@Fabio的答案,这两部分可能更容易适应各种上下文。但我也会使用你的部分代码。谢谢&+1!注意,他的回答不会忽略CSV中以“#”开头的注释。我对你的答案进行了修改,但用两个部分验证了@Fabio的答案,两个部分可能更容易适应不同的上下文。但我也会使用你的部分代码。谢谢&+1!注意,他的回答不会忽略CSV中以“#”开头的注释。
// 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
}