我目前正在使用Discord机器人,但是我一直遇到错误。 这是我的主要代码: main.py
import discord
from verses import link, verse
from dotenv import find_dotenv, load_dotenv
import os
Token = os.environ.get('DISCORD_TOKEN')
Command = os.environ.get('COMMAND')
Bot = commands.Bot(command_prefix=Command)
@Bot.command(name="Random", help="Get a random verse.")
async def random(ctx):
url = link('random')
verses = (verse(url)[0])
embed = discord.Embed(title="Random Bible verse!")
embed.add_field(name=f"{verses['bookname']} {verses['chapter']}:{verses['verse']}",
value=verses['text'])
await ctx.send(embed=embed)
@Bot.event
async def on_command_error(ctx, error):
if isinstance(error, commands.errors.CommandInvokeError):
print(error)
await ctx.send(
f"{ctx.author.mention}, You have used this command incorrectly, please refer to {Command}help or {Command}Helps for help.")
Bot.run(Token)
verses.py,这是我的main.py获取链接和经文功能的地方
import requests
def link(params):
return f"https://labs.bible.org/api/?passage={params}&type=json"
def verse(url):
return requests.get(url).json()
每当我运行代码并尝试使用!Random命令时,都会出现错误:
Command raised an exception: TypeError: 'coroutine' object is not subscriptable
C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\asyncio\events.py:81: RuntimeWarning: coroutine 'Command.__call__' was never awaited
self._context.run(self._callback, *self._args)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
我试图寻找一种解决方案,但似乎找不到。