2017-05-12 3 views
-2

CSVファイル 1つのディレクトリに1000個のファイルがあります。そのディレクトリ内のすべてのCSVファイルを呼び出し、ifの条件を実行したいと思います。あなたのエラーがprint record[name]であり、print record['name']に変更して、あなたがすべきハッシュを整数に変換できません(TypeError)

name,id,address,country,food 
A,11,bcvhcbdc,india,biryani 

...

require "csv" 

path="/logs/*exception_evaluation_summary.csv" 

#calling csv files in the directory 
Dir.glob(path).each do |f| 
    #reading csv files 
    csv = CSV.read(f, :headers=>true, :encoding => "bom|utf-8") 

    csv.each do |record| 
    if (record['id'] != 0 && record['country']=="india" && record['food']=="biryani") 
     print record[name] 
    else 
     print "nothing" 
    end 
    end 
end 
+0

ルビー。誰か助けてもらえますか – user1656716

答えて

0

:条件は満たしていれば、それは、CSVの"nothing"

例を印刷する必要があり、他のnameを印刷する必要があります細かい:

csv.each do |record| 
    if (record['id'] != 0 && record['country']=="india" && record['food']=="biryani") 
    print record['name'] 
    else 
    print "nothing" 
    end 
end 
+0

Gerryさんに感謝しますが、まだエラーが発生しています/usr/lib/ruby/1.8/csv.rb:98:in 'read ':ハッシュを整数に変換できません(TypeError) \t/usr/libに/ルビー/ 1.8/csv.rb:98:読み 'に ':calling.rbから7 \t:6:calling.rbから \t'における各' calling.rbから \t:6 – user1656716

+0

@エラーuser1656716その行(98)で 'Integer'が期待されるときに' Hash'を使っていると言います。あなたの 'csv.rb'コードを' 98'行と 'calling.rb'コードで共有できますか? – Gerry

関連する問題