【问题标题】:Parse of .txt on ruby在 ruby​​ 上解析 .txt
【发布时间】:2017-11-06 10:51:53
【问题描述】:

我想知道如何解析具有以下结构的 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

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

【问题讨论】:

  • 您对 parse 的定义不明确。您可能正在寻找以适当的数组结构分解数据?也许:File.read('my_file.txt').split("\n").map(&:split) ?

标签: ruby-on-rails ruby


【解决方案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", ..}, ...]

似乎该数据已准备好处理。更常见的方法是对此类文件使用逗号分隔值,因此我建议您尽可能更改文件格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多