【发布时间】:2021-08-25 23:23:24
【问题描述】:
我正在尝试将一些类对象保存到 csv 文件中,一切正常。我可以保存并从 csv 文件中读取,只有一个“小”问题,属性是 Array 或 Strings。
当我将它保存到文件时,它看起来像这样:"[""Dan Brown""]"
CSV.open('documents.csv', "w") do |csv|
csv << %w[ISBN Titre Auteurs Type Disponibilité]
@docs.each { |doc|
csv << [doc.isbn, doc.titre, doc.auteurs, doc.type, doc.empruntable ? "Disponible" : "Emprunté"]
}
end
当我尝试从文件中提取数据时,我最终得到如下内容:["[\"Dan Brown\"]"]。
table = CSV.parse(File.read("documents.csv"), headers: true)
table.each do |row|
doc = Document.new(row['Titre'], row['ISBN'], row['Type'])
doc.auteurs << row['Auteurs'] #This the array where there is a 'problem'
if row['Disponibilité'] == "Disponible"
doc.empruntable = true
else
doc.empruntable = false
end
@docs.push(doc) #this an array where I save my objects
end
我尝试了很多方法来解决这个问题,但没有任何运气。如果您能帮我找到解决方案,我将不胜感激。
【问题讨论】:
-
我的猜测是其中两个反斜杠(内部的)不是真正的反斜杠,而只是双引号中双引号的表示。尝试手动验证字符串的大小以确认这一点。