Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 类型错误:';非类型';对象不可编辑-SQLite和discord.py_Python_Sqlite_Discord - Fatal编程技术网

Python 类型错误:';非类型';对象不可编辑-SQLite和discord.py

Python 类型错误:';非类型';对象不可编辑-SQLite和discord.py,python,sqlite,discord,Python,Sqlite,Discord,该函数将检查带有反应的通道是否是bot和用户之间的私有通道,然后执行其他操作 守则: @bot.event async def on_raw_reaction_add(payload): channel = bot.get_channel(payload.channel_id) msg = await channel.fetch_message(payload.message_id) emoji = payload.emoji author = payload.m

该函数将检查带有反应的通道是否是bot和用户之间的私有通道,然后执行其他操作

守则:

@bot.event
async def on_raw_reaction_add(payload):
    channel = bot.get_channel(payload.channel_id)
    msg = await channel.fetch_message(payload.message_id)
    emoji = payload.emoji
    author = payload.member
    if emoji.is_custom_emoji():
        emoji_count = discord.utils.get(msg.reactions, emoji=emoji).count
    else:
        emoji_count = discord.utils.get(msg.reactions, emoji = emoji.name).count
    cur.execute(f"SELECT discord_user_dmchannel_id FROM users WHERE discord_user_id = \
                   {int(payload.user_id)};")
    print(cur.fetchone())
    channel_dm_id_list = list(cur.fetchone())
    channel_dm_id = channel_dm_id_list[0]
    if payload.channel_id == channel_dm_id:
        if int(emoji_count) > 1:
            if emoji = ...
输出:

 (782664385889959976,)
 Ignoring exception in on_raw_reaction_add
 Traceback (most recent call last):
 File "C:\Users\plays\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\client.py", 
 line 312, in _run_event
 await coro(*args, **kwargs)
 File "C:\Users\plays\OneDrive\Рабочий стол\Python\bot2.py", line 130, in on_raw_reaction_add
 channel_dm_id_list = list(cur.fetchone())
 TypeError: 'NoneType' object is not iterable
表列包括:

users(
discord_user_id INT PRIMARY KEY,
discord_user_dmchannel_id INT,
discord_user_name TEXT,
... 
...);
fetchone()正在返回下一行。 在
print(cur.fetchone())
行中,您已经获得了第一行。在下一行
channel\u dm\u id\u list=list(cur.fetchone())
中,您正在尝试获取第二个值。但由于没有第二个值,因此该方法不会返回导致错误的值。因此,请删除print语句或存储第一个结果,如下所示:

channel_dm_id_list = list(cur.fetchone())
print(channel_dm_id_list)

如果没有结果,
fetchone
是否返回
None