【发布时间】:2022-01-21 15:47:16
【问题描述】:
我想做一些事情,以便在脚本启动时,它可以获取有关公会成员的信息,例如 id、公会 ID。
我有这个代码:
async def on_ready(self):
for guild in guild:
for member in guild.members:
values = {
"_id":member.id,
"guild_id":guild.id,
"warns": 0 ,
"reasons": []
}
server_values = {
"_id": guild.id,
"case": 0
}
if collusers.count_documents({"_id": member.id, "guild_id": guild.id}) == 0:
collusers.insert_one(values)
if collservers.count_documents ({"_id": guild.id}) == 0:
collservers.insert_one(server_values)
但我也得到一个错误:
Ignoring exception in on_ready
Traceback (most recent call last):
File "C:\Users\Andriyko\AppData\Local\Programs\Python\Python310\lib\site-packages\nextcord\client.py", line 351, in _run_event
await coro(*args, **kwargs)
File "c:\Users\Andriyko\Desktop\Ghostbot\modules\warn.py", line 18, in on_ready
for guild in guild:
UnboundLocalError: local variable 'guild' referenced before assignment
【问题讨论】:
-
您可能需要将
guild作为参数传递给您的函数,而for a in a:至少会令人困惑(即为循环变量和集合使用不同的名称变量)。 -
尝试
for guilds in self.client.guilds而不是for guilds in guilds,或者将公会设置为self.client.guilds。 -
好的,我试试
标签: python database mongodb discord.py nextcord