【问题标题】:Reading in CSV files smaller than 10K from S3 with Ruby 1.9.2 p290使用 Ruby 1.9.2 p290 从 S3 读取小于 10K 的 CSV 文件
【发布时间】:2011-12-30 02:42:30
【问题描述】:

以下代码 sn-p 适用于大于 10 K 的 CSV 文件。

lines = CSV.read(open(resource.csv(:original)))

这是使用 Paperclip gem 读取存储在 Amazon S3 中的 CSV 文件。

但是,如果文件大小小于 10 K,我会收到以下错误:

ActionView::Template::Error(无法将 StringIO 转换为 String):

我用谷歌搜索了以下帖子:

http://adayinthepit.com/?p=269

所以我尝试使用 fastcsv gem,当我再次运行我的程序时,出现以下错误:

ActionView::Template::Error(请切换到 Ruby 1.9 的标准 CSV 库。它是 FasterCSV 加上对 Ruby 1.9 的 m17n 编码引擎的支持。):

看起来它是 Catch-22。如何在 ruby​​ 1.9.2 p290 中处理小于 10 K 的文件?

请指教。

谢谢。

巴拉特

【问题讨论】:

    标签: ruby csv amazon-s3 paperclip


    【解决方案1】:

    我猜想CSV.read 在需要 String 时被传递给 StringIO。如果是这样,那么您应该可以拨打read 并切换到CSV.parse 让每个人都开心:

    lines = CSV.parse(open(resource.csv(:original)).read)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-14
      • 2015-12-04
      • 2011-08-25
      • 1970-01-01
      相关资源
      最近更新 更多