构建逗号分隔文件

发布于 2024-09-30 05:11:53 字数 176 浏览 1 评论 0原文

我需要使用 ruby​​ 创建一个逗号分隔的文件。数据来自 MySQL 数据库。

因此,示例文件如下所示:

userid, username, firstname, lastname, tags
2343,blankman, blank, man, "hello world tags-here"

I need to create a comma-separated file using ruby. The data are coming from a MySQL database.

So an example file would look like:

userid, username, firstname, lastname, tags
2343,blankman, blank, man, "hello world tags-here"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

东走西顾 2024-10-07 05:11:53

有一个标准的 CSV 库:

http://ruby-doc.org/stdlib/libdoc/ csv/rdoc/index.html
http://ruby-doc.org/stdlib/libdoc/csv /rdoc/classes/CSV.html

或 FasterCSV:

http://fastercsv.rubyforge.org/

您可以这样使用:

csv_string = FasterCSV.generate do |csv|
  csv << ["row", "of", "CSV", "data"]
  csv << ["another", "row"]
  # ...
end

csv_string = FasterCSV.generate do |csv|
  my_array.each do |item|
    csv << [item['name'], item['phone_number']]
  end
end

There is a standard CSV library:

http://ruby-doc.org/stdlib/libdoc/csv/rdoc/index.html
http://ruby-doc.org/stdlib/libdoc/csv/rdoc/classes/CSV.html

or FasterCSV:

http://fastercsv.rubyforge.org/

which you can use this way:

csv_string = FasterCSV.generate do |csv|
  csv << ["row", "of", "CSV", "data"]
  csv << ["another", "row"]
  # ...
end

or

csv_string = FasterCSV.generate do |csv|
  my_array.each do |item|
    csv << [item['name'], item['phone_number']]
  end
end
来日方长 2024-10-07 05:11:53

您还可以简单地将数据库中的数据直接输出到 CSV 文件中,如下所示:

find_by_sql(["SELECT userid, username, firstname, lastname, tags FROM blankman_table INTO OUTFILE ? FIELDS TERMINATED BY \',\' LINES TERMINATED BY \'\\n\'", filename])

不是很性感,但我发现 MySQL CSV 生成比 Ruby 的 FasterCSV 库快得多。

You can also simply output the data from the database into a CSV file directly with something like this:

find_by_sql(["SELECT userid, username, firstname, lastname, tags FROM blankman_table INTO OUTFILE ? FIELDS TERMINATED BY \',\' LINES TERMINATED BY \'\\n\'", filename])

Not very sexy, but I've found the MySQL CSV generation is a lot faster than Ruby's FasterCSV library.

潦草背影 2024-10-07 05:11:53

假设 rows 是一个数组的数组:

require 'csv'

comma_separated = CSV.generate {|csv| rows.each {|row| csv << row}}

Assuming rows is an array of arrays:

require 'csv'

comma_separated = CSV.generate {|csv| rows.each {|row| csv << row}}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文