Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.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 字典出现Discord.py运行时错误_Python_Discord_Members - Fatal编程技术网

Python 字典出现Discord.py运行时错误

Python 字典出现Discord.py运行时错误,python,discord,members,Python,Discord,Members,所以,我一直在尝试制作一个机器人,它在我服务器中的所有成员之间循环。我正在使用get_all_members()生成器来执行此操作 for member in client.get_all_members(): userName = str(member.name) userGame = str(member.game) userID = str(member.id) print(userName, userGame, userID)

所以,我一直在尝试制作一个机器人,它在我服务器中的所有成员之间循环。我正在使用get_all_members()生成器来执行此操作

for member in client.get_all_members():
      userName = str(member.name)
      userGame = str(member.game)
      userID = str(member.id)
      print(userName, userGame, userID)
      await client.send_message(message.channel, "User " + userName + " 
      (<@" + userID + ">) is playing " + userGame)

如何避免此错误?

在循环之前,请尝试列出
获取所有成员的列表

for member in list(client.get_all_members()):
    ...
发生的情况是,
Server
对象将其
成员存储在字典中。当您
等待
一个协同路由时,您允许其他协同路由在等待时运行,其中一个使
服务器
对象保持最新。每当
服务器的成员身份更改时,字典也会更改。因为您不应该在某些内容发生更改时对其进行迭代,所以Python会检测到这一点并终止程序

通过先将值读入列表,我们不会注意到字典何时更改


最新版本已经改变了这种行为,我们对此进行了讨论

非常感谢!我花了很多时间想弄明白这一点。
for member in list(client.get_all_members()):
    ...