【问题标题】:ruby nokorigi export csv columnsruby nokorigi 导出 csv 列
【发布时间】:2018-09-27 17:59:04
【问题描述】:

我想用它的类型在 3 列中导出 csv,但我得到的结果与我想要的不一样。它只是显示我所有数据的一列,请帮助我该怎么办

require 'nokogiri'
require 'csv'

page = Nokogiri::HTML(open("index.html"))

fullName = page.css('li._5i_q').css("a[data-gt]").children.map {|name| name.text }
shortURL = page.css('li._5i_q').css("._5j0e a[data-hovercard]")
myID = shortURL.map {|element|
  element["data-hovercard"][/id=([^&]*)/].gsub('id=', '')
}
messenger = shortURL.map {|element|
  element["data-hovercard"][/id=([^&]*)/].gsub('id=', '') + "@gmail.com"
}

attributes = %w{ID FullName Messenger}

CSV.open('chatId.csv', 'w') do |csv|
  csv << attributes

  myID.each do |x|
      csv << [x]
  end
  fullName.each do |y|
      csv << [y]
  end
  messenger.each do |z|
    csv << [z]
  end
end

这都是我的代码

【问题讨论】:

  • 你能解释一下预期的输出是什么,你的代码的输出是什么?

标签: ruby-on-rails ruby


【解决方案1】:

将数据导出到 csv 时,您必须逐行写入。因此,尝试创建一个[x, y, z] 的数组并使用to_csv 方法将它们导出。例如:

data = myID.zip(fullName, shortUrl)

CSV.open('chatId.csv', 'w') do |csv|
  csv << attributes
  csv << "\n"
  data.each do |d|
    csv << d.to_csv
  end
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    相关资源
    最近更新 更多