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

时间:2021-03-13 15:05:32

标签: python api discord.py

我正在尝试创建一个 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)

1 个答案:

答案 0 :(得分:0)

您可以捕获异常:

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

仅当玩家具有实际排名时,才会添加排名字段。