8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JavaScript(Electron)でCSVファイルの読み込み、CSV→JSONの変換をスマートに行う

Last updated at Posted at 2019-05-13

#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
8
7
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?