私はでいくつかのテストを行っていますCSV.table
。小さくてほぼ同じCSVファイルが2つありますが、1つにはヘッダー行がありません。
CSV.table
ヘッダー行のあるCSVファイルに対して実行すると、すべてが期待どおりに機能します。
ヘッダー行のないCSVファイルに対して実行すると、次のようになります。
NoMethodError: undefined method `encode' for nil:NilClass
さまざまな種類のデータ、さまざまな種類のヘッダーでこれを試したところ、同じ結果が得られました。
の魔法に興味がありCSV.table
ます。ヘッダーをtrueに設定して使用するCSV.parse
と、何があっても常に最初の行がヘッダーになります。そのため、インポートするCSVファイルにヘッダー行があるかどうかを確認するために使用していますが、使用している方法CSV.table
で機能するかどうか、いつ機能するかがわからないため、あまり快適ではありません。
begin
CSV.table(csv_file_path)
rescue
# Add error to log or something.
end
誰か知っている?
PS私はすでにこれとそれが各メソッドで提供するソースコードを読みました-http ://www.ruby-doc.org/stdlib-1.9.3/libdoc/csv/rdoc/CSV.html