Ссылочный номер столбца с использованием smarter_csv в Rails 5
В настоящее время я использую гем smarter_csv для импорта данных из CSV в мое приложение Rails. В идеале я хотел бы получить доступ к столбцам, импортированным по номеру, а не по имени заголовка, так как имена заголовков могут быть несколько непоследовательными при поступлении данных.
У кого-нибудь был успех в этом? Что-то вроде кода ниже будет идеально.
SmarterCSV.process(file,
col_sep: ',',
force_simple_split: false,
downcase_header: false,
row_sep: :auto) do |row|
row[1] #get data from whatever column number here
end
Строка возвращается в виде хэша, но я не думаю, что могу рассчитывать на последовательность хэша. Заранее спасибо!
1 ответ
Решение
Я не проверял это, но, возможно, попробуйте пользовательские преобразования заголовка через Procs
change_headers_to_position = Proc.new {|headers|
headers.each_with_index.map{|h, index| index + 1 }
}
options = {
header_transformations: [:none, change_headers_to_position ]
}
data = SmarterCSV.process('/tmp/test.csv', options)