【发布时间】:2017-02-17 17:58:10
【问题描述】:
我正在尝试从SQL query result 生成csv 文件。
99% 的时间它都可以正常工作,但在 CSV 文件的某些行(行)中,它确实会在行的开头和结尾生成一个引号。
我已经检查了 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
有没有这样解决或者改进生成过程?
【问题讨论】:
-
这种情况是否只发生在 Thayane 的线路上?
-
其实我仔细看了一下,发现它的名字“Thayane”上有一个断线。现在我遇到了一个新问题。
-
是的,我感觉在 thayane 之后有一个换行符。 csv 将多行字段封装在引号中。并且由于 mdesantis 的回答中提到的问题,算法认为整行是一个字段。
-
@eiko 你是对的。字符串中有一个“char(10)”。现在它工作正常。谢谢。