【问题标题】:Rails CSV import without double-quote hiccupsRails CSV 导入没有双引号打嗝
【发布时间】:2016-07-29 18:46:23
【问题描述】:

我假设通过将:col_sep 声明为 \t

CSV.foreach("items.tsv", :col_sep => "\t", headers: true) do |row|

包含双引号的列不会产生问题,但 CSV 导入过程仍然抱怨 CSV::MalformedCSVError: Illegal quoting in line 45.

如何优雅地避免这种情况?

【问题讨论】:

    标签: ruby csv


    【解决方案1】:

    从 Ruby 2.4 开始,您可以传递 liberal_parsing: true 选项以允许对 CSV.foreach、CSV.parse、CSV.new 等方法使用双引号。

    文件在这里

    https://docs.ruby-lang.org/en/2.5.0/CSV.html

    当设置为真值时,CSV 将尝试解析不符合 RFC 4180 的输入,例如未加引号的字段中的双引号。

    【讨论】:

      【解决方案2】:

      回答found here。添加引号字符的规范,在这种情况下是不可打印的:

      CSV.foreach("items.tsv", :col_sep => "\t", :quote_char => "\x00", headers: true) do |row|
      

      成功了。所以,显然定义col_sep 是不够的。

      【讨论】:

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