client.fetch_user()在herokou上托管时不起作用



所以今天我正在测试一个排行榜命令,它为我工作,但在托管它到herokou后,它给了我这个错误:


2021-02-07T18:54:24.504724+00:00 heroku[worker.1]: State changed from crashed to starting
2021-02-07T18:54:27.000000+00:00 app[api]: Build succeeded
2021-02-07T18:54:27.747125+00:00 heroku[worker.1]: Starting process with command `python bot.py`
2021-02-07T18:54:28.379755+00:00 heroku[worker.1]: State changed from starting to up
2021-02-07T18:54:29.527430+00:00 app[worker.1]:   File "<fstring>", line 1
2021-02-07T18:54:29.527452+00:00 app[worker.1]:     ((await client.fetch_user(str(x[0]))).name)
2021-02-07T18:54:29.527458+00:00 app[worker.1]:                  ^
2021-02-07T18:54:29.527459+00:00 app[worker.1]: SyntaxError: invalid syntax
2021-02-07T18:54:29.574256+00:00 heroku[worker.1]: Process exited with status 1
2021-02-07T18:54:29.634600+00:00 heroku[worker.1]: State changed from up to crashed

这里是我的代码:
@client.command(aliases=['top'])
async def leaderboard(ctx):
conn = sqlite3.connect('db.db')
c = conn.cursor()
c.execute(f"SELECT id, bal FROM main ORDER BY bal DESC LIMIT 10")
result = c.fetchall()
embed = discord.Embed(title="Leaderboards", colour=discord.Colour(0x6790a7))
for i, x in enumerate(result, 1):
embed.add_field(name=f"#{i}", value=f"**{(await client.fetch_user(str(x[0]))).name}** - {str(x[1])}$", inline=False)
await ctx.send(embed=embed)
c.close()
conn.close()

当我尝试在我的电脑上运行我的机器人时,它工作得很好,有什么想法吗?

NVM,它没有工作,但我发现一个替代方法是:

@client.command(aliases=['top'])
async def leaderboard(ctx):
conn = sqlite3.connect('db.db')
c = conn.cursor()
c.execute(f"SELECT id, bal FROM main ORDER BY bal DESC LIMIT 10")
result = c.fetchall()
embed = discord.Embed(title="Leaderboards", colour=discord.Colour(0x6790a7))
for i, x in enumerate(result, 1):
name = (await client.fetch_user(str(x[0]))).name
embed.add_field(name=f"#{i}", value=f"**{name}** - {str(x[1])}$", inline=False)
await ctx.send(embed=embed)
c.close()
conn.close()

不是把它放在一行代码中,而是添加了另一行,现在可以工作了

最新更新