Papa Parseでローカルファイルを読み取るにはどうすればよいですか?ローカルにchallanges.csv
というファイルがありますが、何度も試した後、Papa Parseで解析できません。
var data;
Papa.parse('challanges.csv', {
header: true,
dynamicTyping: true,
complete: function(results) {
console.log(results);
data = results.data;
}
});
私の知る限り、csvファイルをFileとして開くときに問題が発生します。 javascriptでどうすればいいですか?
Papaparseのドキュメントで提案されているFile
APIは、使用するブラウザ向けです。サーバー側のノードでこれを実行していると仮定すると、私のために働くのは 読み取り可能なストリーム を活用することです:
const fs = require('fs');
const papa = require('papaparse');
const file = fs.createReadStream('challenge.csv');
var count = 0; // cache the running count
papa.parse(file, {
worker: true, // Don't bog down the main thread if its a big file
step: function(result) {
// do stuff with result
},
complete: function(results, file) {
console.log('parsing complete read', count, 'records.');
}
});
簡単なインターフェイスがあるかもしれませんが、これまでのところ非常にうまく機能し、大きなファイルを処理するためのストリーミングのオプションを提供しています。
これは、最良の答えがミュラ・シーカーのものであることを繰り返し述べます。
必要なのは、構成に追加することですdownload: true
およびローカルパスはPapa Parseによってダウンロードされます。 Philip M.によるストリーミング回答は、ベストアンサーではありません。
var data;
Papa.parse('challanges.csv', {
header: true,
download: true,
dynamicTyping: true,
complete: function(results) {
console.log(results);
data = results.data;
}
});
追伸Murat Sekerの答えについてコメントするほどの評判はありません。そこで、答えを再投稿しました。評判に対するどんな愛でも感謝されます。 :-)
設定にもう1行追加する必要があります:download: true,
。
var data;
Papa.parse('../challanges.csv', {
header: true,
download: true,
dynamicTyping: true,
complete: function(results) {
console.log(results);
data = results.data;
}
});
更新:この回答では、ファイルオブジェクトは必要ありません。ファイル名を渡すことができ、papa parseはそれを「ダウンロード」します。