gpt4 book ai didi

ruby-on-rails - `block in
' : undefined method `[]' for nil:NilClass (NoMethodError)

转载 作者:太空宇宙 更新时间:2023-11-03 17:47:20 25 4
gpt4 key购买 nike

我正在尝试加载远程 JSON URL 以最终将其存储在 SQLite3 数据库中。

我正在正确加载 JSON(我认为),然后遍历它以将每个 JSON 值分配给一个变量,然后该变量将被构建到 db.execute 语句中以将其存储到数据库中。

我遇到错误“block in <main>': undefined method” [] ' for nil:NilClass (NoMethodError)当我运行代码时。

链接Undefined method '>' for nil:NilClass <NoMethodError>充满了信息,但老实说我不明白发生了什么。我想知道是否有人可以向我解释我的理解哪里出了问题。

我的代码是:

require 'json'
require 'open-uri'

tournament_url = "http://www.pgatour.com/data/r/033/leaderboard-v2.json"

puts tournament_url

leaderboard = JSON.load(open(tournament_url))

no_of_players = leaderboard['leaderboard']['players'].length

puts "The number of players to be loaded is: #{no_of_players}"

data_array = Array.new

for i in 0..no_of_players
current_position = leaderboard['leaderboard']['players'][i]['current_position']
end

如果我在结束循环之后编写任何代码,它将不会执行。

如果还尝试通过以下方式检查返回值:

if (leaderboard['leaderboard']['players'][i]['current_position'].nil?)
current_position = ""
else
current_position = leaderboard['leaderboard']['players'][i]['current_position']
end

最佳答案

范围 0..no_of_players 包括在内。

您可能想使用独占版本(注意三个点):

0...no_of_players

或:

0..no_of_players-1

关于ruby-on-rails - `block in <main>' : undefined method `[]' for nil:NilClass (NoMethodError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33418558/

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