当列为空时,是否可以忽略或替换为空字符串? 我的 CSV 如下所示:
"DE","Klasse","Deutsch", "x"
"EN","Class","Carpenter",
"DE","Klasse","Mathe",
,,,
所以并不是所有的列都被填满。有几个空列。它返回一个错误:
TypeError: no implicit conversion of nil into String
我所做的是:
csv_contents = CSV.read("path_to_csv", options)
str=["local, type, name"]
csv_contents.each_with_index do |row, i|
if row[3]==nil
str << row[0] + ", " + row[1] + ", " + row[2]
end
end
结束 我必须修改 csv,因为最后一列中包含“x”的所有行都应删除。 谁能帮我?谢谢
最佳答案
您可以添加一个方法来检查该值是否为零。如果是,则返回“”。
def get_row(row, i)
row.nil? ? "" : row[i]
end
然后,在您的代码中使用它:
str << get_row(row, 0) + ", " + get_row(row, 1) + ", " + get_row(row, 2)
关于 ruby CSV : ignoring empty column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21705321/