作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我需要在解析 CSV 文件中的数据之前验证其中的 header 。
# convert the data into an array of hashes
CSV::Converters[:blank_to_nil] = lambda do |field|
field && field.empty? ? nil : field
end
csv = CSV.new(file, :headers => true, :header_converters => :symbol, :converters => [:all, :blank_to_nil])
csv_data = csv.to_a.map {|row| row.to_hash }
我知道我可以使用 headers 方法来获取标题
headers = csv.headers
但是headers method的问题是“如果不使用 header 则返回 nil,如果将使用但尚未读取则返回 true,或者在读取 header 后返回实际 header 。”
因此,如果我将 headers = csv.headers
置于 csv_data = csv.to_a.map {|row| 之上row.to_hash }
行 headers
是 true
如果我在读取数据后放置它,headers
包含数组中的标题行。它在我的方法上强加了指令顺序,这很难测试并且是糟糕的编程。
在这种情况下,有没有办法在不强加顺序的情况下读取标题行?我正在使用 ruby 2.0。
最佳答案
CSV.open(file_path, &:readline)
关于ruby-on-rails - 如何从 ruby 中的 CSV 文件中获取标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21078580/
我是一名优秀的程序员,十分优秀!