如何使用 Papa Parse 进行 javascript csv 解析

How to use Papa Parse for javascript csv parsing

我查看了他们的 API,但没有成功。

我正在尝试解析一些在客户端进入服务器时发送给客户端的 csv 文件。

我试过这段代码:

// Parse local CSV file
Papa.parse("data/premier league/14-15s.csv", {
    complete: function(results) {
        console.log("Finished:", results.data);
    }
});

这没用。它给出以下输出:

Finished: [Array[1]]0: Array[1]0: "data/premier league/14-15s.csv"length: 1__proto__: Array[0]length: 1__proto__: Array[0]concat: function concat() { [native code] }constructor: function Array() { [native code] }entries: function entries() { [native code] }every: function every() { [native code] }filter: function filter() { [native code] }forEach: function forEach() { [native code] }indexOf: function indexOf() { [native code] }join: function join() { [native code] }keys: function keys() { [native code] }lastIndexOf: function lastIndexOf() { [native code] }length: 0map: function map() { [native code] }pop: function pop() { [native code] }push: function push() { [native code] }reduce: function reduce() { [native code] }reduceRight: function reduceRight() { [native code] }reverse: function reverse() { [native code] }shift: function shift() { [native code] }slice: function slice() { [native code] }some: function some() { [native code] }sort: function sort() { [native code] }splice: function splice() { [native code] }toLocaleString: function toLocaleString() { [native code] }toString: function toString() { [native code] }unshift: function unshift() { [native code] }Symbol(Symbol.iterator): function ArrayValues() { [native code] }Symbol(Symbol.unscopables): Object__proto__: Object

csv 在哪里?

您正在解析内容为 data/premier league/14-15s.csv 的字符串 - 而不是本地 CSV 文件。再看看文档。要解析本地 CSV 文件,您必须传入从 <input type="file"> 元素获得的 File 对象。

虽然这个问题是 post5 个月前提出的,但我相信我也遇到过类似的问题,而且我刚刚解决了它,所以我想我会分享我认为的解决方案,以防其他像我这样的初学者在寻找答案时偶然发现。

在我看来,您正试图通过路径让 papa parse 解析计算机上的 csv 文件。我相信这意味着您正在解析一个远程文件,该文件在 papa parse 网站上看起来像:

Papa.parse(url, {
    download: true,
    // rest of config...
});

所以在我看来你只是缺少 download: true 的第二个参数。它在他们的文档中说 url 也可以是一条路径 - 就像你拥有的那样。同样,我对自己的回答不是很有信心,因为我大约 7 周前才开始编码,但希望这可以帮助那些在困惑中偶然发现这个 post 的人!