在ruby上解析.txt

时间:2017-11-06 10:51:53

标签: ruby-on-rails ruby

我想知道如何解析具有以下结构的txt:

文件中的每个项目都由TAB键分隔。

列是:

购买者姓名,商品描述,商品价格,购买数量,商家地址,商家名称。

purchaser name  item description    item price  purchase count  merchant address    merchant name
João Silva  R$10 off R$20 of food   10.0    2   987 Fake St Bob's Pizza
Amy Pond    R$30 of awesome for R$10    10.0    5   456 Unreal Rd   Tom's Awesome Shop
Marty McFly R$20 Sneakers for R$5   5.0 1   123 Fake St Sneaker Store Emporium
Snake Plissken  R$20 Sneakers for R$5   5.0 4   123 Fake St Sneaker Store Emporium

在分析了这些数据之后,我需要发送到规范化的数据库并创建相应的表。

1 个答案:

答案 0 :(得分:1)

您可以使用CSV解析带分隔符的文件,例如:

require 'csv'

CSV.foreach('your_file.txt', col_sep: "\t", headers: true).map do |row|
  row.to_h
end
#=> [{"purchaser"=>"João", "name"=>"St", "item"=>"R$20", "description"=>"off" ...}, 
#    {"purchaser"=>"Amy", "name"=>"Rd", "item"=>"awesome", "description"=>"of", ..}, ...]

似乎这些数据已准备就绪。一种更常见的方法是对这样的文件使用逗号分隔值,所以如果可以,我建议您更改文件格式。