Вот пример символического синтаксиса с использованием Ruby 1.9. В приведенных ниже примерах код читает файл CSV с именем data.csv из каталога Rails db.
:headers => true
обрабатывает первую строку как заголовок вместо строки данных. Затем параметр :header_converters => :symbolize
преобразует каждую ячейку в строке заголовка в символ Ruby.
CSV.foreach("#{Rails.root}/db/data.csv", {:headers => true, :header_converters => :symbol}) do |row|
puts "#{row[:foo]},#{row[:bar]},#{row[:baz]}"
end
В Ruby 1.8:
require 'fastercsv'
CSV.foreach("#{Rails.root}/db/data.csv", {:headers => true, :header_converters => :symbol}) do |row|
puts "#{row[:foo]},#{row[:bar]},#{row[:baz]}"
end
На основе CSV, предоставленного Poul (запрос StackOverflow), результат из приведенного выше примера кода будет:
1,2,3
blah,7,blam
4,5,6
В зависимости от символов, используемых в заголовках файла CSV, может потребоваться вывести заголовки, чтобы увидеть, как CSV (FasterCSV) преобразует заголовки строк в символы. Вы можете вывести массив заголовков из CSV.foreach
.
row.headers