将结果打印到选项卡中的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 desc
Georeous elements are upcoming this year hi
但我希望将其打印为
name desc
Georeous,elements,are upcoming,this year hi
答案 0 :(得分:1)
如果您仍然对此问题感兴趣,可能的解决方案是引用生成的CSV中的单元格。这应告诉您稍后打开文件的电子表格应用程序忽略单元格中的逗号。
name desc
"Georeous,elements,are upcoming,this year" "hi"
此外,您之前的代码存在一些问题。一个问题是prod是Hash而不是数组,所以s
不是包含键的Hash" 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
end