gpt4 book ai didi

ruby-on-rails - 无法将 csv 数据放入哈希中

转载 作者:数据小太阳 更新时间:2023-10-29 07:58:45 26 4
gpt4 key购买 nike

我有一个包含两列的 CSV 文件:

PPS_Id Amount
123 100
1234 150

我从这个文件中读取数据并使用下面的代码插入到一个数组中:

CSV.foreach("filename.CSV", headers: true) do |row|
file_details << row.inspect # hash
end

然后我尝试将 file_details 中的数据推送到以 PPS_Id 为键、以 Amount 为值的散列中,我正在使用下面的代码:

file_details_hash = Hash.new

file_details.each { |x|
file_details_hash[x['PPS_Id']] = x['Amount']
}

但是当我打印结果时,我什么也得不到 {"PPS_Id"=>"Amount"}

你能帮忙吗

最佳答案

你的代码,修改后可以工作

您需要为您的 csv 指定列分隔符,并删除 inspect

require 'csv'

file_details = []
CSV.foreach("filename.CSV", headers: true, col_sep: "\s" ) do |row|
file_details << row
end

file_details_hash = Hash.new
file_details.each { |x|
file_details_hash[x['PPS_Id']] = x['Amount']
}

p file_details_hash
#=> {"123"=>"100", "1234"=>"150"}

它现在返回您期望得到的结果。

较短的解决方案

读取 csv,删除第一行(标题)并转换为哈希:

p CSV.read("filename.CSV", col_sep: "\s").drop(1).to_h
#=> {"123"=>"100", "1234"=>"150"}

关于ruby-on-rails - 无法将 csv 数据放入哈希中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41344950/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com