2013-09-16 158 views
1

我有一堆需要写入CSV文件的数据。目前我正在这样做:如何序列化数据并将其写入CSV文件?

CSV.open("file.csv" , 'w') do |writer| 
    readfromCSV.each do |x| 
    writer << x 
    end 
end 

我需要序列化所有数据并将其写入CSV文件。

我是新来的序列化,我读了Marshal.dump(x)序列化数组,但它会抛出一个错误,当我尝试做writer<<x

我读了关于选项dump(ary_of_objs, io = "", options = Hash.new),但无法理解如何在这种情况下实现它。

+0

看看这里http://stackoverflow.com/questions/10844669/ruby-how-can-use-the-dump-method-to-output-data-to-a-csv-file – engineersmnky

+0

我在下面编写了编组数据。它写入时没有显示任何错误:File.open(“csvfile.csv”,'w')do | f | readfromCSV.each_with_index do | x,i | Marshal.dump(x,f) 结束 结束 – user1455116

+0

您的问题很混乱。什么是'readfromCSV'?如果您不向我们显示代码,我们无法帮到您。请参阅http://sscce.org/ –

回答

1

http://www.ruby-doc.org/stdlib-2.0.0/libdoc/csv/rdoc/CSV.html解释了csv模块中的功能。

说你想在csv小写的第一列字符串;

CSV.open("file.csv" , 'w') do |writer| 
    readfromCSV.each do |row| 
    # row is a csv row, pretty much an array 
    row[0] = row[0].downcase 
    writer << row 
    #alternatively, you could do it manually eg. writer << ["this", "rocks"] 
    end 
end 
相关问题