Давайте сначала создадим файл CSV. Чтобы упростить, я включил только четыре из ваших полей. Я также изменил значение "Exchange"
в одной строке с "NYSE"
на "FTSE"
. Поскольку значение одного из полей "Name"
содержит запятую, я сделал разделитель столбцов точкой с запятой, но, конечно, есть и другие варианты. Запятую можно использовать, если записи в столбце name
заключены в кавычки.
fname = 't.csv'
File.write fname, <<~END
Symbol;Name;Exchange;Sector
B;Barnes Group, Inc.;NYSE;Industrial
BA;Boeing Co.;FTSE;Industrial
BAB;Invesco Taxable Municipal Bond ETF;NYSE;
BABA;Alibaba Group Holding Ltd.;NYSE;Consumer Discretionary
END
#=> 200
Теперь мы просто используем CSV :: read с параметрами headers: true
и col_sep: ';'
для чтения файла в CSV :: Table объект:
require 'csv'
csv = CSV.read(fname, headers: true, col_sep: ';')
#=> #<CSV::Table mode:col_or_row row_count:5>
и использование CSV :: table # [] для извлечения "Exchange"
колонка:
csv["Exchange"]
#=> ["NYSE", "FTSE", "NYSE", "NYSE"]