如何将Ruby数组导出到单个csv行?

时间:2019-05-02 21:11:11

标签: ruby

我希望将数组作为单行传递到csv中。下面的代码展示了我目前正在尝试的内容。该数组的长度是可变的,将展示类似这样的内容。

a = ["website url", "page link", "page link", "page link"]

代码本质上使用open-uri转到页面,并刮取了每个页面的链接。这用于内部验证,并对照我们的期望进行了检查。如果链接符合我们的期望,则将其作为上面显示的页面链接变量报告到csv中。

我目前已经尝试使用to_csv格式化数据,但是在csv中,所有内容都包含在一行中,包括逗号分隔。

def dwrite (array)
    CSV.open("filename.csv", "ab") do |csv|
            data = array.to_csv(row_sep: nil)
            csv << [data]
    end
end

这是csv在单列中的外观示例:

https://www.url.com/example-page.html
#,
#,,
#,,,
#,,,,
#,,,,,
#,,,,,,
#,,,,,,,
#,,,,,,,,
#,,,,,,,,,
#,,,,,,,,,,
#,,,,,,,,,,,
#,,,,,,,,,,,,
#,,,,,,,,,,,,,
#,,,,,,,,,,,,,,
#,,,,,,,,,,,,,,,
https://anotherexamplepage.html

我希望传递给该方法的每个数组元素都可以显示在同一行上,但事实并非如此。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您无需以任何方式转换数组。只需将其添加到CSV:

def dwrite(array)
  CSV.open("filename.csv", "ab") do |csv|
    csv << array
  end
end