首页 > 解决方案 > 如何将 Ruby 数组导出到单个 csv 行中?

问题描述

我希望将数组作为单行传递到 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

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

标签: ruby

解决方案


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

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

推荐阅读