RUBY CSV Gem生成随机引号

时间:2017-02-17 17:58:10

标签: ruby csv

我正在尝试从csv生成SQL query result个文件。 99%的时间它可以正常工作,但在CSV文件的某些行(行)中,它确实在行的开头和结尾生成一个引号。

图示的问题: enter image description here

我已经检查了SQL单元格的内容,没关系。

所以我认为在生成文件时会出现问题。

这是文件生成的方式。

#load query result
dataset = DB[ "select
                        id
                       ,action
              from
                        some_table"]

#generate csv file
CSV.open("#{table}.csv", "wb",:write_headers=> true, :headers => ["id_cliente|""acao"] ) do |csv|
      dataset.each do |dbrow|
        csv << [
                "#{dbrow[:id_cliente]}"
                + "|" +
                "#{dbrow[:acao]}"
                ]
        end
end

new_object = $bucket_response.objects.build("#{table}.csv")
new_object.content = open("#{table}.csv")
new_object.acl = :public_read
new_object.save

无论如何都要解决它或改善生成过程?

1 个答案:

答案 0 :(得分:1)

您必须指定分隔符,而不是将其作为字符串传递:

CSV.open("#{table}.csv", "wb", col_sep: '|', ..., headers: ['id_cliente', 'acao']
    ...
    csv << [dbrow[:id_cliente], dbrow[:acao]]
    ...

有关更多信息,请查看CSVCSV::Row文档