在 Ruby 中解析 CSV

问题描述 投票:0回答:1

我正在尝试从不带标题的 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

我总是遇到这个错误:

`初始化':没有将哈希隐式转换为字符串(类型错误)

ruby csv parsing
1个回答
0
投票

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
© www.soinside.com 2019 - 2024. All rights reserved.