Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.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 2使用MongoDB和discord.py时出错_Python_Mongodb_Pymongo_Discord.py - Fatal编程技术网

Python 2使用MongoDB和discord.py时出错

Python 2使用MongoDB和discord.py时出错,python,mongodb,pymongo,discord.py,Python,Mongodb,Pymongo,Discord.py,所以我一直在努力在我的discord机器人上为每台服务器设置不同的前缀 所以我的数据库设置如下 { "SERVER ID": "PREFIX" "SERVER ID": "PREFIX" "SERVER ID": "PREFIX" } 这是我的主要任务 导入不一致 从discord.ext导入命令 导入json 导入操作系统 进口pymongo 从pymongo导入MongoClient mongo=MongoClient('localhost',27017) db=mong

所以我一直在努力在我的discord机器人上为每台服务器设置不同的前缀

所以我的数据库设置如下

{
   "SERVER ID": "PREFIX"
   "SERVER ID": "PREFIX"
   "SERVER ID": "PREFIX"
}
这是我的主要任务

导入不一致
从discord.ext导入命令
导入json
导入操作系统
进口pymongo
从pymongo导入MongoClient
mongo=MongoClient('localhost',27017)
db=mongo.dpy
前缀=db.prefixes
prefix\u query=前缀.find()
def get_前缀(客户端、消息):
guildid=str(message.guild.id)
对于前缀_查询中的单据:
打印(文件[Guidid])
退货单[Guidid]
client=commands.Bot(command\u prefix=get\u prefix)
client.remove_命令(“帮助”)
client.owner_id=int('393165866285662208')
exts=[]
对于os.listdir('.\\commands')中的f:
如果f.endswith('.py'):
d=f.替换('.py','')
exts.append(d)
@客户端事件
_ready()上的异步定义:
打印('客户端已准备就绪!')
打印(f'以{client.user}身份登录')
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
对于ext中的ext:
尝试:
client.load_扩展(f'commands.{ext}')
打印(分机)
除异常作为错误外:
打印(f'[控制台]{ext}无法加载:{error}')
client.run('TOKEN')
所以我的问题是,当我运行它时,它总是在第一个命令上工作,但当我运行第二个命令时,它会给我这个错误

Ignoring exception in on_message
Traceback (most recent call last):
  File "C:\Users\jackw\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\client.py", line 312, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\jackw\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\bot.py", line 930, in on_message
    await self.process_commands(message)
  File "C:\Users\jackw\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\bot.py", line 926, in process_commands
    ctx = await self.get_context(message)
  File "C:\Users\jackw\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\bot.py", line 842, in get_context
    prefix = await self.get_prefix(message)
  File "C:\Users\jackw\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\bot.py", line 787, in get_prefix
    ret = await discord.utils.maybe_coroutine(prefix, self, message)
  File "C:\Users\jackw\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\utils.py", line 317, in maybe_coroutine
    value = f(*args, **kwargs)
  File "client.py", line 18, in get_prefix
    print(doc[guildid])
KeyError: '575865854542217231'
然后,当我运行第三个命令时,我得到一个不同的错误

Ignoring exception in on_message
Traceback (most recent call last):
  File "C:\Users\jackw\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\bot.py", line 791, in get_prefix
    ret = list(ret)
TypeError: 'NoneType' object is not iterable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\jackw\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\client.py", line 312, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\jackw\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\bot.py", line 930, in on_message
    await self.process_commands(message)
  File "C:\Users\jackw\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\bot.py", line 926, in process_commands
    ctx = await self.get_context(message)
  File "C:\Users\jackw\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\bot.py", line 842, in get_context
    prefix = await self.get_prefix(message)
  File "C:\Users\jackw\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\bot.py", line 798, in get_prefix
    raise TypeError("command_prefix must be plain string, iterable of strings, or callable "
TypeError: command_prefix must be plain string, iterable of strings, or callable returning either of these, not NoneType