尝试使用 sqlite3 向我的 discord.py 机器人添加自定义前缀
Posted
技术标签:
【中文标题】尝试使用 sqlite3 向我的 discord.py 机器人添加自定义前缀【英文标题】:Trying to add custom prefixes to my discord.py bot using sqlite3 【发布时间】:2021-06-15 08:53:38 【问题描述】:这是我的代码:
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】:cursor.fetchone()
返回一个列表或元组,即使该行只包含一件事。试试
prefix=cursor.fetchone()[0]
【讨论】:
以上是关于尝试使用 sqlite3 向我的 discord.py 机器人添加自定义前缀的主要内容,如果未能解决你的问题,请参考以下文章
我的 discord.js 机器人的 sql 没有/不能从我的 sqlite3 db 定义一个表
我无法使用 discord.py 向我的 discord 机器人添加命令
如何让 Discord 机器人向我 ping 的人发送 DM?