バージョン情報
RUBY_VERSION #=> "3.0.1"
CSV::VERSION #=> "3.1.9"
内容
CSV.parse で CSV 文字列をパースした場合、空のフィールドは場合によって nil を返したり空文字を返したりする。
require 'csv'
CSV.parse(%(🐱,,🐶\n,"🐰",""))
# => [["🐱", nil, "🐶"], [nil, "🐰", ""]]
空のフィールドを空文字に統一したい場合は nil_value
オプションを使用するとよい。
require 'csv'
CSV.parse(%(🐱,,🐶\n,"🐰",""), nil_value: '')
# => [["🐱", "", "🐶"], ["", "🐰", ""]]
# もちろん nil_value オプションに空文字以外の値を指定することもできる。
CSV.parse(%(🐱,,🐶\n,"🐰",""), nil_value: '🈳')
# => [["🐱", "🈳", "🐶"], ["🈳", "🐰", ""]]