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

Posted

技术标签:

【中文标题】discord.ext.commands.errors.CommandInvokeError:命令引发异常:KeyError:\'link\'【英文标题】:discord.ext.commands.errors.CommandInvokeError: Command raised an exception: KeyError: 'link'discord.ext.commands.errors.CommandInvokeError:命令引发异常:KeyError:'link' 【发布时间】:2022-01-16 07:01:06 【问题描述】:

我尝试创建一个 discord.py 机器人命令来发送随机的狗事实和图像,但我遇到了这个错误:

discord.ext.commands.errors.CommandInvokeError: Command raised an exception: KeyError: 'link'

代码如下:

@bot.command()
async def dog(ctx):
    response = requests.get('https://some-random-api.ml/animal/dog')
    json_data = json.loads(response.text) 

    embed = discord.Embed(color = 0xff9900, title = 'random dog fact') 
    embed.set_image(url = json_data['link']) 
    await ctx.send(embed = embed)

【问题讨论】:

【参考方案1】:

JSON 响应中没有名为 "link" 的键。使用"fact" 代替狗事实,使用"image" 代替随机狗图像。

另外,代替这个代码块:

response = requests.get('https://some-random-api.ml/animal/dog')
json_data = json.loads(response.text)

你可以使用

json_data = requests.get('https://some-random-api.ml/animal/dog').json()

使用 Requests 的内置 json() 方法。

【讨论】:

我按照你说的做了一切,但我遇到了另一个错误“命令引发异常:HTTPException:400 错误请求(错误代码:50035):无效的表单正文”我认为有些问题api API 对我来说运行良好。也许你已经打了太多次,你已经被禁止了一段时间。

以上是关于discord.ext.commands.errors.CommandInvokeError:命令引发异常:KeyError:'link'的主要内容,如果未能解决你的问题,请参考以下文章