Ruby の CSV.table メソッド
Ruby で CSV を扱う際に、CSV.table メソッドは便利です。
しかし……
しかしながら、一つだけ*1注意点があります。それは、「日本語のヘッダは表示されない*2」ということです*3。
実例
ヘッダが日本語の場合
以下のようなhello_world.csv
という CSVファイル を用意したとします。
"英語","日本語" "Hello, World!","こんにちは、世界!"
そして以下のように、hello_world.rb
という Ruby のコードを書きます。
require 'csv' table = CSV.table('hello_world.csv') puts table.headers
これを実行するとこうなります。
$ ruby hello_world.rb $
ヘッダがアルファベットの場合
先ほどのhello_world.csv
という CSVファイル を次のように書き換えます。ヘッダをアルファベットにします。
"English","Japanese" "Hello, World!","こんにちは、世界!"
そして上で書いた、同じhello_world.rb
を実行します。
$ ruby hello_world.rb english japanese $
ちゃんと表示されました*4。
考察
- ヘッダ以外(2行目以降)は日本語でも大丈夫です
- ヘッダの各要素に独自のシンボルを割り当てれば、シンボルでのアクセスも可能です*5
- プチハマり案件でした(少なくとも自分は)