#1 tl;dr
- ElectronにてCSVのparseを行う時にcsv-parseモジュールを用いる
- 使う機会はあまりないかもしれないが、CSVからJSONにいい感じにしてくれる
#2 install package
csv-parseモジュールはcsvモジュールに含まれる一つのモジュールであるため、
ただparseを行うだけであれば
$ npm install --save csv-parse
参考:csv.js.org
他のCSVファイルの操作(書き込みなど)も行いたい場合は以下をする
$ npm install --save csv
#3 読み込むCSV
今回はヘッダー付きのCSVファイルを用いる。
ヘッダー無しでも可能。
move_log.csv
time,x0,y0,x1,y1,x2,y2
0:00:00,0,0,10,20,20,40
0:00:01,0,0.1,10,20.1,20,39
0:00:02,0,0.2,10,20.2,20,38
0:00:03,0,0.3,10,20.3,20,37
#4 変換
- 2行目のモジュールでerrorが出る場合(昔のversionを使う環境の場合)はrequireの部分をrequire("csv-parse")または"csv-parse"をimportしてください(2行目を消して3行目のコメントアウトを外してみて下さい)
const fs = require("fs");
const csv = require("csv-parse");
//const csv = require("csv-parse/lib/es5");
fs.createReadStream(__dirname + '/move_log.csv')
.pipe(csv({
columns: true //header無しのCSV fileはfalse
}, function (err, data) {
data = JSON.stringify(data);
data = JSON.parse(data);
console.log(data);
}));
$ npm install --save csv
を行った人は以下となる
const fs = require("fs");
const csv = require("csv");
fs.createReadStream(__dirname + '/move_log.csv')
.pipe(csv.parse({
columns: true //header無しのCSV fileはfalse
}, function (err, data) {
data = JSON.stringify(data);
data = JSON.parse(data);
console.log(data);
}));
#5 出力
[ { 'time': '0:00:00',
x0: '0',
y0: '0',
x1: '10',
y1: '20',
x2: '20',
y2: '40' },
{ 'time': '0:00:01',
x0: '0',
y0: '0.1',
x1: '10',
y1: '20.1',
x2: '20',
y2: '39' },
{ 'time': '0:00:02',
x0: '0',
y0: '0.2',
x1: '10',
y1: '20.2',
x2: '20',
y2: '38' },
{ 'time': '0:00:03',
x0: '0',
y0: '0.3',
x1: '10',
y1: '20.3',
x2: '20',
y2: '37' }]
#6 補足
- Node.js
- v10.11.0
- npm
- 5.2.0
- electron
- v4.1.4