RUBY-CSV-Gem生成随机引号
我正在尝试从SQL查询结果生成csv文件。 99%的情况下,它工作正常,但在CSV文件的某些行中,它会在行的开始和结束处生成引号 问题如下: 我已经检查了SQL单元格的内容,没有问题 因此,我认为问题发生在生成文件时 这里是文件生成的方式RUBY-CSV-Gem生成随机引号,ruby,csv,Ruby,Csv,我正在尝试从SQL查询结果生成csv文件。 99%的情况下,它工作正常,但在CSV文件的某些行中,它会在行的开始和结束处生成引号 问题如下: 我已经检查了SQL单元格的内容,没有问题 因此,我认为问题发生在生成文件时 这里是文件生成的方式 #load query result dataset = DB[ "select id ,action from
#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
是否仍有解决方法或改进生成过程?必须指定分隔符,而不是将其作为字符串传递:
CSV.open("#{table}.csv", "wb", col_sep: '|', ..., headers: ['id_cliente', 'acao']
...
csv << [dbrow[:id_cliente], dbrow[:acao]]
...
要了解更多信息,请查看和文档这是否只发生在与Thayane的连线上?事实上,我仔细看了一下,发现它的名字Thayane上有一条断线。现在我有了一个新的问题。是的,我有一种感觉,在thayane之后有一条新的路线。csv将多行字段封装在引号中。由于mdesantis的回答中提到的问题,算法认为整行是一个字段。@eiko你是对的。绳子上有一根绳子。现在它工作得很好。谢谢。不要做{dbrow[:id\u cliente]}。只需执行dbrow[:id_cliente]。@mdesantis实际上我的字符串中有一个char10,所以它正在破坏单元格。总之,您的提示提高了文件的速度和大小。谢谢