我有一个这样的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
答案 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"]