【发布时间】:2020-01-26 04:06:17
【问题描述】:
我要先说明我还在学习 ruby。
我正在编写一个脚本来解析 .csv 并识别数据集中可能存在的重复记录。
我有一个带有标题的 .csv 文件,所以我正在解析数据,以便我可以使用标题标题访问每一行:
@contact_table = CSV.parse(File.read("app/data/file.csv"), headers: true)
# Prints all last names in table
puts contact_table['last_name']
我正在尝试遍历表中的每一行,并确定我当前遍历的姓氏是否与下一个姓氏相似,但我在执行此操作时遇到了问题。我想我处理它的方式好像它是一个数组,但我检查了类型,它是一个 CSV::Row。
示例(这不起作用):
@contact_table.each_with_index do |c, i|
puts "first contact is #{c['last_name']}, second contact is #{c[i + 1]['last_name']}"
end
我意识到这不是这样工作的,因为该表不是一个数组,它是一个 CSV::Row,就像我之前提到的那样。有没有什么方法可以做到这一点?我现在真的很茫然。
我的 csv 看起来像这样:
id,first_name,last_name,company,email,address1,address2,zip,city,state_long,state,phone
1,Donalt,Canter,Gottlieb Group,dcanter0@nydailynews.com,9 Homewood Alley,,50335,Des Moines,Iowa,IA,515-601-4495
2,Daphene,McArthur,"West, Schimmel and Rath",dmcarthur1@twitter.com,43 Grover Parkway,,30311,Atlanta,Georgia,GA,770-271-7837
【问题讨论】:
标签: ruby-on-rails arrays ruby csv