Lui*_*igi 1 ruby csv arrays hash ruby-on-rails
我有以下代码:
def csv_to_array(file)
csv = CSV::parse(file)
fields = csv.shift
array = csv.collect { |record| Hash[*fields.zip(record).flatten] }
end
Run Code Online (Sandbox Code Playgroud)
这将创建一个哈希数组,并使用逗号分隔值正常工作.我试图复制此代码为制表符分隔文件.目前,当我在我的制表符分隔文件上运行上面的代码时,我得到这样的东西:
array[0] = {"First Name\tLast Name\tCode\t"=>"Luigi\tSmith\t1406\t"}
Run Code Online (Sandbox Code Playgroud)
因此,每个数组对象都是预期的散列,但它有一个键值对 - 整个制表符分隔的标题行是键,单个数据行是值.
如何更改此代码以返回具有单个键值对的哈希数组,每列的标题映射到该列的行值?
您传递给解析的选项似乎列在:: new中
>> CSV.parse("qwe\tq\twe", col_sep: "\t"){|a| p a}
["qwe", "q", "we"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2778 次 |
| 最近记录: |