Python Discord.py类型错误:';非类型';对象不可下标

Python Discord.py类型错误:';非类型';对象不可下标,python,mysql,discord.py,Python,Mysql,Discord.py,伙计们,我正在研制一种过滤器,可以去除脏话。我的问题是我得到了一个“非类型”对象是不可下标的错误。有人能解释一下为什么以及如何修复它吗?我知道这一错误是由getMutedValue=curs.fetchone()[0]造成的,但如果我删除[0],它将无法工作 @client.event async def on_message(message): curs.execute('SELECT muted FROM user WHERE userID = (%s)', (message.aut

伙计们,我正在研制一种过滤器,可以去除脏话。我的问题是我得到了一个“非类型”对象是不可下标的错误。有人能解释一下为什么以及如何修复它吗?我知道这一错误是由
getMutedValue=curs.fetchone()[0]
造成的,但如果我删除[0],它将无法工作

@client.event
async def on_message(message):
    curs.execute('SELECT muted FROM user WHERE userID = (%s)', (message.author.id,))
    getMutedValue = curs.fetchone()[0]

    curs.execute('SELECT word FROM filter')
    getWord = curs.fetchone()

    curs.execute('SELECT immunity FROM user WHERE userID = (%s)', (message.author.id,))
    getImmunityValue = curs.fetchone()[0]

    if getMutedValue == 1:
        muted = message.author.mention + ' You are currently muted!'
        await message.channel.send(muted)
        await message.delete()

    if getImmunityValue == 0:
        for word in getWord:
            if getMutedValue == 0:
                if message.content.count(word) > 0:
                    channel = client.get_channel(729267888539828255)
                    id = message.author.id

                    curs.execute('SELECT username FROM user WHERE userID = (%s)', (id,))
                    getUsername = curs.fetchone()[0]

                    curs.execute(f'UPDATE user SET warning = +1 WHERE userID = {id}')
                    db.commit()

                    curs.execute('SELECT warning FROM user WHERE userID = (%s)', (id,))
                    getWarning = curs.fetchone()[0]

                    await message.delete()
                    await message.channel.send(f'{message.author.mention} Please do not use an swear words. If you continue you will get punished!')

                    Embed = discord.Embed(
                        title=f'{getWarning}x Warning from {getUsername}',
                        color=discord.Colour.red(),
                        timestamp=datetime.utcnow()
                    )

                    Embed.add_field(name='Blacklist Wort:', value=word, inline=False)
                    Embed.add_field(name='Channel-ID:', value=message.channel.id, inline=False)
                    Embed.add_field(name='Channel:', value=message.channel, inline=False)

                    await channel.send(embed=Embed)

    await client.process_commands(message)
如果没有要提取的行,则
fetchone()
方法可以返回None。(.)该计划下一步应该做什么?在检查用户是否静音的情况下,最明智的做法可能是假设他们没有静音

例如:

row = curs.fetchone()
if row is not None:
    getMutedValue = row[0]
else:
    getMutedValue = 0
如果返回
None
,则返回值为0。如果返回值,则使用该值。

如果没有要提取的行,则
fetchone()
方法可以返回None。(.)该计划下一步应该做什么?在检查用户是否静音的情况下,最明智的做法可能是假设他们没有静音

例如:

row = curs.fetchone()
if row is not None:
    getMutedValue = row[0]
else:
    getMutedValue = 0
如果返回
None
,则返回值为0。如果你得到一个值,那么你就使用这个值