尝试使用 sqlite3 向我的 discord.py bot 添加自定义前缀

时间:2021-03-17 23:52:54

标签: python sqlite discord discord.py

这是我的代码:

def get_prefix(bot, message):
    cursor.execute('SELECT prefix FROM prefijos WHERE id = ?', (message.guild.id,))
    prefix = cursor.fetchone()
    db.commit()
    return when_mentioned_or(prefix)(bot, message)

bot = commands.Bot(command_prefix=get_prefix)

但是这段代码没有按预期工作。它仅在我提到机器人时才有效,但不适用于自定义前缀。正如我所说,我使用 sqlite3 作为存储前缀的数据库。

我遇到的错误(当我使用前缀时)是这样的:

    raise TypeError("Iterable command_prefix or list returned from get_prefix must "
TypeError: Iterable command_prefix or list returned from get_prefix must contain only strings, not tuple

如果我从“cursor.execute...”部分删除逗号,则会出现此错误(这是sqlite的错误)

    cursor.execute('SELECT prefix FROM prefijos WHERE id = ?', (message.guild.id))
ValueError: parameters are of unsupported type

我该如何修复此代码? 谢谢。

1 个答案:

答案 0 :(得分:0)

cursor.fetchone() 返回一个列表或元组,即使该行只包含一件事。试试

prefix=cursor.fetchone()[0]