将结果打印到选项卡中的csv文件时出现问题
prod = { "name": "Georeous,elements,are upcoming,this year","desc":"hi"}
p = prod
File.open("file.csv","wb") do |f|
p.each do |s|
f.print "#{s["name"]}\t"
f.print "#{s["desc"]}\t"
end
end在上面的代码中,prod散列有一个name键,其值用逗号分隔
由于逗号原因,我的代码打印为
name desc
Georeous elements are upcoming this year hi但我想把这个打印成
name desc
Georeous,elements,are upcoming,this year hi发布于 2015-09-15 02:42:39
如果您仍然对这个问题感兴趣,一个可能的解决方案是引用您生成的CSV中的单元格。这应该会告诉稍后打开文件的电子表格应用程序忽略单元格中的逗号。
name desc
"Georeous,elements,are upcoming,this year" "hi"此外,您之前的代码还存在一些问题。一个问题是,prod是一个散列而不是数组,所以s不是包含键"name“和"desc”的散列。
products = [
{"name" => "Georeous,elements,are upcoming,this year",
"desc" => "hi"},
{"name" => "Rose",
"desc" => "a rose by any other name"}
]
File.open("file.csv", "w") do |f|
f.puts "name\tdesc"
products.each do |product|
f.print "\"#{product["name"]}\"\t"
f.print "\"#{product["desc"]}\"\n"
end
endhttps://stackoverflow.com/questions/26771610
复制相似问题