Laravel・PHP入門

PHPer初心者

【Ruby】Rubyで CSVファイルを処理するメモ

RubyでGoogle Spreadsheetを読み書きするメモ - Ruby on Rails 入門

 

上記記事の時、google spreadsheetからcsvファイルをダウンロードして
そのあとデータをjsonに整形することがあったのでメモ。

忘れないうちに自分用にメモさせていただきます

 

CSVからデータを取り出すにはRailsのtableとかforeachというメソッドが良いらしい。
tableはテーブル向けのインスタンスを返してくれるそうですが、
今回データを分けてHash化したかったので
foreachで1つ1つ取ってくる。

 

まず標準添付ライブラリのcsvjsonは使います

require 'csv'
require 'json'

 データを入れる用の配列を用意します

all = Array.new

hogehoges =

 

そして待ち焦がれたforeachの登場。
同フォルダ内のcsvファイルを読むよ、ヘッダーあるよ、dateに毎回入れるよ

CSV.foreach('table.csv',headers: true) do |data|
hogehoges.push data[1]
hogehoges.push data[2]
hogehoges.push data[3]
end

という感じ。
重複して欲しくなかったり分けたかったりしたので
compactやuniqを使用して最終的には下記になりました。
hashに全部入れて、jsonで返して終わりです。

#cording = UTF-8
require 'csv'
require 'json'
all = Array.new
hogehoges =

CSV.foreach('table.csv',headers: true) do |data|
hogehoges.push data[1]
hogehoges.push data[2]
hogehoges.push data[3]
end

newhogehoges =hogehoges.compact.uniq
x = 1
y = 0

newhogehoges.each do |neweq|
h = Hash["id", x, "name", neweq]
all.push(h)
x += 1
y += 1
end

puts all.to_json

 備忘録。