我有一个包含一列的CSV,我希望将所有哈希值保存在其中。我使用nokogiri sax来解析xml文档,然后将其保存为CSV。我得到像这样的xml值:@infodata[:academic] = @content.inspect
哈希有以下键:
@infodata = {}
@infodata[:titles] = Array.new([])
@infodata[:identifier]
@infodata[:typeOfLevel]
@infodata[:typeOfResponsibleBody]
@infodata[:type]
@infodata[:exact]
@infodata[:degree]
@infodata[:academic]
@infodata[:code]
@infodata[:text]
我现在使用此代码循环键并将其保存为CSV:
def end_document
CSV.open("info.csv", "wb") do |row|
for key, val in @infodata
row << [val,]
end
end
puts "Finished..."
end
我得到的输出是:
"""avancerad"""
"""Ingen examen"""
"""uh"""
"""Arkivvetenskap""""Archival science"""
"""HIA80D"""
"""10.300"""
"""uoh"""
"""Arkivvetenskap rör villkoren för befintliga arkiv och modern arkivbildning med fokus på arkivarieyrkets arbetsuppgifter: bevara, tillgängliggöra och styra information. Under ett år behandlas bl a informations- och dokumenthantering, arkivredovisning, gallring, lagstiftning och arkivteori. I kursen ingår praktik, där man under handledning får arbeta med olika arkivarieuppgifter."""
"""statlig"""
"""60"""
如何获得这样的输出:
"avancerad", "Ingen examen", "uh", "Arkivvetenskap", "Archival science", "HIA80D", 10.300,"uoh", "Arkivvetenskap rör villkoren för befintliga arkiv och modern arkivbildning med fokus på arkivarieyrkets arbetsuppgifter: bevara, tillgängliggöra och styra information. Under ett år behandlas bl a informations- och dokumenthantering, arkivredovisning, gallring, lagstiftning och arkivteori. I kursen ingår praktik, där man under handledning får arbeta med olika arkivarieuppgifter.", "statlig", 60
答案 0 :(得分:2)
我想我理解你的一般性问题,所以也许这可以帮助你:
# Flatten the titles Array into one String
@infodata[:titles] = @infodata[:titles].join(", ")
# Open the CSV for writing
CSV.open("info.csv", "wb") do |csv|
# Write the entire row all at once
csv << @infodata.values
end
答案 1 :(得分:0)
@joelparkerhenderson谈到的连接方法只接受两个数组值并将它们连接起来。
您可以使用flatten
分隔并创建一个新数组,如下所示:
# Open the CSV for writing
CSV.open("info.csv", "wb") do |csv|
# Write the entire row all at once
csv << @infodata.values.flatten
end
阅读详情:http://www.ruby-doc.org/core-1.9.3/Hash.html#method-i-flatten