我正在编写一个使用mojang和Hypix API的discord机器人。我试图返回第一行(仅限于游戏类型和模式)
{"success":true,"games":[{"date":1588679703604,"gameType":"DUELS","mode":"CLASSIC_DUEL","map":"Neon"},{"date":1588679671468,"gameType":"DUELS","mode":"CLASSIC_DUEL","map":"Skyport"},{"date":1588679612412,"gameType":"DUELS","mode":"CLASSIC_DUEL","map":"Arena"},{"date":1588679573171,"gameType":"DUELS","mode":"CLASSIC_DUEL","map":"Spikerock Bay"},{"date":1588679530855,"gameType":"DUELS","mode":"CLASSIC_DUEL","map":"Backwood"},{"date":1588679503914,"gameType":"DUELS","mode":"CLASSIC_DUEL","map":"Spikerock Bay"},{"date":1588679453072,"gameType":"DUELS","mode":"CLASSIC_DUEL","map":"Highset"},
我就是这样做的:
def get_session(name):
url1 = f"https://api.mojang.com/users/profiles/minecraft/{name}"
res = requests.get(url1)
data = res.json()
if data["id"] is None:
return None
returnUuid = (data["id"])
url2 = f"https://api.hypixel.net/recentGames?key={API_KEY}&uuid=" + returnUuid
res = requests.get(url2)
data = res.json()
if data["games"] is None:
return None
returnGametype = (data["games"]["gameType"])
returnGamemode = (data["games"]["mode"])
但是它给了我一个错误,Command Raised an exception: TypeError: list indices must be integers or slices, not str.
我认为这与多行有关。不过我不知道该怎么办
正如您所注意到的,它与多行有关
端点返回json,即对于键
'games'
具有数组/多个值。 因此,如果要获取数组中第一个元素的'gameType'
和'mode'
值,必须编写:词典嵌套在一个列表中。这就是索引错误的原因(因为列表索引不能是字符串)。如果要使用“游戏”列表中的第一个结果,请使用第一个索引(0):
相关问题 更多 >
编程相关推荐