FasterCSV: столбцы в массив - рельсы - PullRequest
0 голосов
/ 02 ноября 2009

Я пытаюсь получить более быструю настройку CSV, чтобы вместо анализа каждой строки она помещала каждый столбец в мультимассив.

CSV import file:
id, first name, last name, age
1, joe, smith, 11
2, jane, doe, 14

Save to array named people:
people[0][0] would equal id
people[2][1] would equal jane

Это то, что у меня сейчас есть:

url = 'http://url.com/file.csv'
open(url) do |f|
  f.each_line do |line|
    FasterCSV.parse(line) do |row|
      row
    end
  end
end

Любая помощь приветствуется.

Ответы [ 3 ]

3 голосов
/ 02 ноября 2009

Вы прочитали документацию FasterCSV?

Если бы вы это сделали, вы бы знали, что самый простой способ сделать то, что вы хотите:

people = FasterCSV.read('http://url.com/file.csv')
0 голосов
/ 03 ноября 2009

Вы можете использовать CsvMapper поверх FasterCSV Это спасатель жизни

0 голосов
/ 02 ноября 2009

Благодаря EmFi, с вашей помощью мне удалось найти решение.

Это берет удаленный URL-файл CSV и загружает его в многомерный массив, основанный на столбцах.

require 'rio'
require 'fastercsv'

url = 'http://remoteurl.com/file.csv'
people = FasterCSV.parse(rio(url).read)
...