【问题标题】:How do easily filter CSV data in Ruby如何在 Ruby 中轻松过滤 CSV 数据
【发布时间】:2016-11-03 11:53:04
【问题描述】:

我正在处理一个 CSV 文件(大约 500 行)。有没有办法用过滤器从这个文件中选择数据。我知道我可以通过解析 csv 并使用 select/find 方法在 ruby​​ 中做到这一点,但我正在寻找一种更简单的语法。我不想编写方法来处理以下每个查询。任何可以让我进行这些查询的宝石?我正在寻找一个非 Rails 解决方案,因为我正在编写一个普通的 ruby​​ 脚本。

例如

csv.find_rows(where: {'GENDER' => 'MALE'}.count

或

csv.find_rows(where: {'GENDER' => 'MALE', 'SALARY' >= 10000 }

【问题讨论】:

    标签: ruby-on-rails ruby csv


    【解决方案1】:

    我认为你在这里不需要宝石:

    csv.select { |row| row['GENDER'] == 'MALE' }
    csv.select { |row| row['GENDER'] == 'MALE' || row['SALARY'] >= 10000 }
    

    【讨论】:

    • 谢谢安德烈。我需要为多个数据查询处理此 csv,因此我正在寻找一个开箱即用的解决方案,而无需编写您上面建议的内容。
    • @Rahul out of the box? 是什么意思 out of the box 2 行代码对你来说还不够吗? :)
    • Andrey,我的意思是一些 gem/helper,它允许我使用我指定的语法。这是 2 行代码,但我需要多次过滤数据并使用各种过滤条件。
    • @Rahul 我同意 Andrey 的观点,无论如何您都必须指定您的条件,并且选择语法并不比您提供的更冗长。我的意思是,不需要宝石。
    • @Rahul 没有这样的宝石,因为创建具有这种功能的宝石甚至没有意义。想一想 - 您正在寻找某种 activerecord 语法,同时说您想要一个非 Rails 解决方案。如果您想要非 Rails 解决方案 - 使用 Ruby,它可以为您提供简单的现成方法。您的需求是基本的,我看不出任何 gem 会如何简化它
    猜你喜欢
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 2016-12-31
    相关资源
    最近更新 更多