什么是 Ruby 1.9 标准 CSV 库?

Posted

技术标签:

【中文标题】什么是 Ruby 1.9 标准 CSV 库?【英文标题】:What is Ruby 1.9 standard CSV library? 【发布时间】:2011-06-28 00:55:22 【问题描述】:

当我在我的应用程序上尝试 FasterCSV gem 时,我收到了这个错误:

Please switch to Ruby 1.9's standard
CSV library.  It's FasterCSV plus
support for Ruby 1.9's m17n encoding
engine.

顺便说一下,我使用的是 Rails 3、Ruby 1.9.2 和 Rubygems 1.4。

谁能向我解释一下如何使用 Ruby 1.9 的标准 CSV 库。我不 有任何想法,因为我对 Rails 很陌生。

【问题讨论】:

【参考方案1】:

Ruby 1.9 采用 FasterCSV 作为其内置的 CSV 库。但是,它位于标准库而不是 Ruby 1.9 的核心中,因此您需要在应用程序中手动要求它。

添加后

require 'csv'

你的代码,然后你可以做一些事情,如

CSV.parse("this,is,my,data")

有关使用该库的信息,请参阅 Ruby 1.9's standard library CSV documentation。

【讨论】:

非常感谢。我多么希望我能投票给你的答案,但系统告诉我至少要有 15 个声望。 CSV.parse("this,is,my,data") 中的参数是什么意思?我知道这问得太多了,但我对 ruby​​ on rails 真的很陌生。 那些不是参数...这只是他给出的正在解析的字符串“this,is,my,data”的示例 非常感谢。我认为这些都是参数。我已经解决了这个问题。我已经知道如何在 Ruby 1.9.2 中导入 CSV 数据。【参考方案2】:

看看我是如何解决这个问题的!

require 'fastercsv'
require 'csv'

secrecy_levels_array = [['SUPERSECRET', 'Supersecret Data', "Tell No One"],
['SEMISECRET', 'Semisecret Data', 'Tell Some People'],
['UNSECRET', 'Unsecret Data', 'Tell Everyone']]

puts '\n'
secrecy_levels_array.each do |line|
  puts line.to_csv
end

【讨论】:

-1 在发布之前,您甚至没有费心去理解现有的三年前的问题和答案。如果您在三年后加入,您的答案应该是最新的,但事实并非如此。

以上是关于什么是 Ruby 1.9 标准 CSV 库?的主要内容,如果未能解决你的问题,请参考以下文章

Ruby RubyGems

ruby 类库组成

Ruby 1.8 和 Ruby 1.9 有啥区别

如何让 ruby​​-prof 忽略 Ruby 核心/标准库/gem 方法?

Ruby 的标准库中是不是有优先级队列数据结构实现?

使用标准库Ruby将数据标记到Elasticsearch批量中