gpt4 book ai didi

ruby-on-rails - 使用 ror 处理网络服务响应

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

我正在使用 Rails 的应用程序收集来自 Web 服务的响应

response = #api.sql_data    

这会导致 response 等于以下内容。

response
#=> { "success"=>true, "totalcount"=>10, "rows"=>[
# { "ID"=>"0001", "CODE"=>"0000001", "CODE_1"=>"Alpha",
# "NAME"=>"Alpha", "Balance"=>"0" },
# { "ID"=>"0002", "CODE"=>"0000002", "CODE_1"=>"Beta",
# "NAME"=>"Beta", "Balance"=>"0" },
# { "ID"=>"0003", "CODE"=>"0000003", "CODE_1"=>"Charlie",
# "NAME"=>"Charlie", "Balance"=>"0"},
# ...
# ]
# }

我创建了以下方法:

def format_response(response)   
response['rows'].map do |row|
{ id: row[0],
code: row[1],
code1: row[2],
balance: row[4] }
end.uniq { |x| x[:code1] }
end

当我对上面的 response 值执行这个方法时,我得到以下结果。

format_response(response)
#=> [{:id=>nil, :code=>nil, :code1=>nil, :balance=>nil}]

这是不正确的。我希望此表达式返回以下内容。

{"ID"=>"0001", "CODE"=>"0000001", "CODE_1"=>"Alpha", "NAME"=>"Alpha", "Balance"=>"0"}

我的错误是什么?

最佳答案

response['rows'] 包含一个哈希数组。 ruby 中的哈希不是关联数组,因此您无法通过 hash[0] 获取第一个键。

def format_response(response)   
response['rows'].map do |row|
{
id: row["ID"],
code: row["CODE"],
code_1: row["CODE_1"],
balance: row["BALANCE"]
}
end.uniq { |x| x[:code1] }
end

关于ruby-on-rails - 使用 ror 处理网络服务响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43357121/

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