我正在尝试从不带标题的 CSV 文件中获取行。
require "csv"
filepath = "data/beatles.csv"
csv_options = { col_sep: ',', quote_char: '"', headers: :first_row }
CSV.foreach(filepath, csv_options) do |row|
puts row[0]
end
我总是遇到这个错误:
`初始化':没有将哈希隐式转换为字符串(类型错误)
CSV::foreach 需要在
path_or_io
参数之后使用可选的命名参数。您试图向它传递一个哈希对象。您需要要求 ruby 将散列扩展为命名参数列表,这是通过双 splat 完成的:
csv_options = { col_sep: ',', quote_char: '"', headers: :first_row }
CSV.foreach(filepath, **csv_options) do |row|
# whatever
end