我一直在做一些测试CSV.table
。我有两个几乎相同的小 CSV 文件,但是其中一个缺少标题行。
当我CSV.table
对带有标题行的 CSV 文件运行时,一切都按预期工作。
当我对没有标题行的 CSV 文件运行它时,我得到:
NoMethodError: undefined method `encode' for nil:NilClass
我尝试了不同类型的数据,不同类型的标题,并得到相同的结果。
我对它的魔力很好奇CSV.table
。如果我使用CSV.parse
设置为 true 的标题,那么无论如何它总是使第一行成为标题。所以,我一直CSV.table
在检查正在导入的 CSV 文件是否有标题行,但我对此不太满意,因为我不明白它是否或何时会或不会像我使用它的方式工作。
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