python-3.x - 尝试搜索不同类型的定义 api discord py
问题描述
当我尝试使用 API 搜索术语时,我遇到了一个错误,所以我想要完成的是,如果该术语是名词,它将打印名词部分的定义,如果它是动词,那么它会打印动词部分。
@commands.command(
name="dict",
description="Allows the user to get a definition from Urban Dictionary",
aliases=['dictionary']
)
async def dict(self, ctx, *, entry):
url = "https://twinword-word-graph-dictionary.p.rapidapi.com/definition/"
querystring = {"entry": entry}
headers = {
'x-rapidapi-key': self.bot.quote_api_key,
'x-rapidapi-host': "twinword-word-graph-dictionary.p.rapidapi.com"
}
async with ClientSession() as session:
async with session.get(url, headers=headers, params=querystring) as response:
r = await response.json()
print(r)
if r['meaning']['noun'] in entry:
embed = discord.Embed(title="Term:", description=f"{entry}")
embed.add_field(name="Definition:", value=f'{r["meaning"]["noun"]}')
embed.set_author(name=ctx.author.display_name, icon_url=ctx.message.author.avatar_url)
await ctx.send(embed=embed)
elif r['meaning']['verb'] in entry:
embed = discord.Embed(title="Term:", description=f"{entry}")
embed.add_field(name="Definition:", value=f"{r['meaning']['verb']}")
embed.set_author(name=ctx.author.display_name, icon_url=ctx.message.author.avatar_url)
await ctx.send(embed=embed)
elif r['meaning']['adverb'] in entry:
embed = discord.Embed(title="Term:", description=f"{entry}")
embed.add_field(name="Definition:", value=f"{r['meaning']['adverb']}")
embed.set_author(name=ctx.author.display_name, icon_url=ctx.message.author.avatar_url)
await ctx.send(embed=embed)
elif r['meaning']['adjective'] in entry:
embed = discord.Embed(title="Term:", description=f"{entry}")
embed.add_field(name="Definition:", value=f"{r['meaning']['adjective']}")
embed.set_author(name=ctx.author.display_name, icon_url=ctx.message.author.avatar_url)
await ctx.send(embed=embed)
In embed.fields.0.value: This field is required
当它尝试抛出 ['meaning']['noun'] 的第一个嵌入时会出现错误,然后在发生这种情况时不再发送任何嵌入。这个问题,不做 if 和 elif 我只能搜索它是名词还是动词.
解决方案
推荐阅读
- api - 有没有办法将具有特定 _id 归档的文档索引到 Elasticsearch?
- java - 带有 react.js 对象的 POST 请求发送空值
- python - Pytorch 1.4 是否支持 cuda10.1?
- javascript - 如何让 Flask 应用程序分部分返回数据
- python - 无法使用带有python3的pyzbar解码QR码
- excel - 如何使用公式在excel中创建数字模式
- r - 如何在R中查找列表是否包含空值?
- spring-boot - Docker swarm springboot和eureka服务发现器不起作用
- python - 如何像指针一样使用 Python 函数 arg?
- python - 自动通过多个路径位置并导出文件名