2013/06/21

FasterCSVでヘッダがあるときの落とし穴

RubyのライブラリFasterCSVを使用時。
パース時のオプションに
:headers => true
を渡してあげるとヘッダ行を読み飛ばしてくれるが
パース後のrowは配列ではなくrowオブジェクトになってしまう。
require 'fastercsv'
opts = {....}
opts[:headers]=true
FasterCSV.parse(opts) {|row|
  ....
}
row["ヘッダ項目"]のようにアクセスできるので便利なこともあるが
ヘッダがない場合と同様に扱いたいときは
row.fields
で、単純な配列でとりだせる。
Related Posts Plugin for WordPress, Blogger...