首页 > 解决方案 > Python:KeyError,但键和值都存在

问题描述

我正在从 opendota API 获取信息。我之前取出了一个 .csv 列表,其中包含大约 .csv 列表。160 match_ids 我想从中获取更多信息,然后将某些值附加到列表中。

使用下面的代码,在循环列表时我收到一个 KeyError。

for x in finallist:
    matchinfo = requests.get("https://api.opendota.com/api/matches/{}".format(x)).json()["match_id"]
    print(matchinfo)

KeyError 是在某个 ID 上引发的,但如果我使用下面的代码,我不会得到 KeyError 并且我会看到信息。

matchspec = requests.get("https://api.opendota.com/api/matches/4184421518").json()['match_id']
matchspec

所以通过这个, 4184421518 打印信息,但在循环中它停止在那个 ID 和下面的几个 ID。为什么我在 for 循环中收到 KeyError,但在我特别询问信息时却没有?

标签: pythonjsonpython-3.xapi

解决方案


Opendota api 的速率限制为 60 个请求/分钟。确保你没有超过这个,因为这似乎是 api 响应的错误。


推荐阅读