【问题标题】:Double quotations in imported CSV导入的 CSV 中的双引号
【发布时间】:2015-12-30 08:00:44
【问题描述】:

例如,我有一个这样的 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

【问题讨论】:

  • 要让 CSV 吃掉你的行,应该是这样的:12345:1:"My ""Problematic"" Name":Last Name。如果您的文件不是太大,您可以手动完成。

标签: ruby csv


【解决方案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"]

【讨论】:

    猜你喜欢
    • 2019-11-02
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多