首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fasterCsv异常处理

fasterCsv异常处理
EN

Stack Overflow用户
提问于 2011-07-06 08:49:56
回答 1查看 1.2K关注 0票数 1

我在csv文件MalformedCSVError文件.And中遇到了.And问题,下面给出了我被困在其中的行:

#从字面上看,有数以百计的“IP到国家”数据库。

因为行包含在这里停止的双quote.Execution,所以例外是: FasterCSV::MalformedCSVError

我如何处理这种情况,我也不能编辑csv文件。

请帮帮我。

EN

回答 1

Stack Overflow用户

发布于 2011-07-06 09:24:04

那个例子确实是畸形的。引号字符看起来是双引号,但里面有嵌入的双引号(应该再次用双引号转义)。你真的应该以畸形为由拒绝这件事。

有点麻烦--围绕,您可以尝试从FasterCSV文档中更改引号,您可以传递:quote_char => "'“,这将允许您访问数据,但现在您将获得双引号作为字符串的一部分--非常麻烦。

实际上,您不需要使用编辑源数据-您的程序应该优雅地处理错误,通知某人并继续。

我们在NGINX后面的批处理模式中使用FasterCSV。当发生错误解析一行时,我们捕获异常,注意导致错误的行并继续。在分析完所有行之后,我们给用户发电子邮件,让他们知道哪些行无法处理。

像这样的东西对我们有用..。

代码语言:javascript
复制
    io.each_line do |line|

        the_line = line.chomp
        begin
            row = FasterCSV.parse_line(the_line)
            ok, message = acceptable?(row)

            if not ok
                reject(io.lineno, the_line, message)
            else
                accept(row, the_line)
            end

        rescue FasterCSV::MalformedCSVError => e
            reject(io.lineno, the_line, e.to_s)
        end

    end

注意要接受和拒绝的处理程序,这允许我们将接受和拒绝与解析的核心分离开来。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6593776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档