首页 > 解决方案 > 在 Ruby 中解析并转换为 CSV 文件的哈希返回一个整数

问题描述

我正在尝试在 vanilla ruby​​ 命令行应用程序中导入 CSV 文件,并根据我在解析 CSV 文件时阅读的文档,我正在使用以下内容:

def self.import
  family_preferences = []
     CSV.foreach(File.path("path/to/my_csv_file.csv"), headers: true) do |row|
        family_preferences << row.to_h
      end
   end
end

当我通过调用类方法或作为导入模块来调用它时,返回值是一个整数。除非我实际上是putsClass.new.import 或 Module.import,我可以在终端中看到已解析的表,否则它只是 Integer 类型。

Class.new.import.class 是 Integer 或 Module.import.class 是 Integer

标签: rubycsvparsing

解决方案


你错过了family_preferences像这样的回报:

   def self.import
     family_preferences = []
     CSV.foreach(File.path("path/to/my_csv_file.csv"), headers: true) do |row|
        family_preferences << row.to_h
      end

      family_preferences
   end

Ruby 返回执行的最后一行。在您的代码段中,它返回了 foreach 函数的返回值,它是一个整数。放置填充的变量,你会得到你想要的


推荐阅读