【Ruby】Rubyで CSVファイルを処理するメモ
RubyでGoogle Spreadsheetを読み書きするメモ - Ruby on Rails 入門
上記記事の時、google spreadsheetからcsvファイルをダウンロードして
そのあとデータをjsonに整形することがあったのでメモ。
忘れないうちに自分用にメモさせていただきます
CSVからデータを取り出すにはRailsのtableとかforeachというメソッドが良いらしい。
tableはテーブル向けのインスタンスを返してくれるそうですが、
今回データを分けてHash化したかったので
foreachで1つ1つ取ってくる。
データを入れる用の配列を用意します
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]
endnewhogehoges =hogehoges.compact.uniq
x = 1
y = 0newhogehoges.each do |neweq|
h = Hash["id", x, "name", neweq]
all.push(h)
x += 1
y += 1
endputs all.to_json
備忘録。