discord.ext.command.errors.CommandInvokeError: 命令引发异常: KeyError: 'rank'



我正在尝试制作Hypixel API命令,但如果该人没有等级,我会得到一个错误。我的代码:

import requests
@commands.command() 
async def api(self, ctx):
user = ctx.message.content[5:]
key = "#############"
r2 = requests.get(f"https://api.mojang.com/users/profiles/minecraft/{user}")
uuid = r2.json()
r = requests.get(f"https://api.hypixel.net/player?key={key}&uuid={uuid['id']}")
d = r.json()
e = discord.Embed(color=0xff7373)
e.set_author(name=f"{uuid['name']}'s Hypixel Stats:")
e.set_thumbnail(url=f"https://mc-heads.net/avatar/{uuid['id']}.png")
e.add_field(name="Rank:", value=d['player']['rank'].capitalize())
e.add_field(name="Bedwars Wins:", value=d['player']['achievements']['bedwars_wins'])
e.set_footer(text=f"UUID: {uuid['id']}")
await ctx.send(embed=e)

您可以捕获异常:

try:
e.add_field(name="Rank:", value=d['player']['rank'].capitalize())
except KeyError:
pass

只有当玩家拥有实际等级时,才会添加等级字段。

最新更新