GAURISH SHARMA976969975PASS
将每个值写在新行中.我想知道逗号在哪里?或者那些必须手动插入?
我正在尝试使用以下代码编写哈希值
CSV.open("resultdata.csv","a") do |csv| h.each do |key,value| csv << value endend
这是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.valuesend
resultdata.csv看起来像
GAURISH SHARMA,97,69,975,PASS总结
以上是内存溢出为你收集整理的用于CSV :: open#<<的Ruby未定义方法`map'(NoMethodError)全部内容,希望文章能够帮你解决用于CSV :: open#<<的Ruby未定义方法`map'(NoMethodError)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)