用于CSV :: open#<<的Ruby未定义方法`map'(NoMeth
发布时间:2020-12-17 01:54:24 所属栏目:百科 来源:网络整理
导读:这有效但由于某种原因,逗号丢失了.数据插入为 GAURISH SHARMA976969975PASS 将每个值写在新行中.我想知道逗号在哪里?或者那些必须手动插入? 我正在尝试使用以下代码编写哈希值 CSV.open("resultdata.csv","a") do |csv| h.each do |key,value| csv value e
这有效但由于某种原因,逗号丢失了.数据插入为
GAURISH SHARMA 97 69 69 975 PASS 将每个值写在新行中.我想知道逗号在哪里?或者那些必须手动插入? 我正在尝试使用以下代码编写哈希值 CSV.open("resultdata.csv","a") do |csv| h.each do |key,value| csv << value end end 这是h哈希的内容 {:name=>"GAURISH SHARMA",:ca=>"97",:cb=>"69",:ba_lab=>"69",:bb_lab=>"69",:grand_total=>"975",:result=>"PASS"} 此代码看起来正确,但在运行此代码时,会生成以下错误: /home/gaurish/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/csv.rb:1729:in `<<': undefined method `map' for "GAURISH SHARMA":String (NoMethodError) from /home/gaurish/Dropbox/code/projects/ra/result.rb:35:in `block (2 levels) in <main>' from /home/gaurish/Dropbox/code/projects/ra/result.rb:34:in `each' from /home/gaurish/Dropbox/code/projects/ra/result.rb:34:in `block in <main>' from /home/gaurish/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/csv.rb:1354:in `open' from /home/gaurish/Dropbox/code/projects/ra/result.rb:33:in `<main>' 知道这里有什么问题吗? 解决方法
当你做csv<< value,您正在将字符串写入文件.
CSV库可以将数组写入文件(以某种形式).从散列中获取包含所有值的数组的最佳方法是使用值方法btw.所以: require 'csv' h = {:name=>"GAURISH SHARMA",:result=>"PASS"} CSV.open("resultdata.csv","a") do |csv| csv << h.values end resultdata.csv看起来像 GAURISH SHARMA,97,69,975,PASS (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |