导入CSV中的双引号

时间:2015-12-30 08:00:44

标签: ruby csv

我有一个这样的CSV,例如:

ACCOUNT:STATUS:FIRST_NAME:LAST_NAME
12345:1:My "Problematic" Name:Last Name

如果我使用CSV.foreach,我收到消息: 第2行非法引用

如何正确处理此问题并仍在我读取的字符串中保留引号?

我目前的代码:

CSV.foreach("accounts_data.csv", { :col_sep => ':', headers: true } ) do |account|
end

1 个答案:

答案 0 :(得分:1)

您可以设置选项以指定col_sep,因为您的文件使用冒号(:)作为分隔符,而quote_char可以单引号来解决双引号问题。

CSV.foreach("/path/to/file", {quote_char: "'", col_sep: ":"}) do |row|
  p row
end

输出:

["ACCOUNT", "STATUS", "FIRST_NAME", "LAST_NAME"]
["12345", "1", "My \"Problematic\" Name", "Last Name"]