我目前正在使用Python学习MongoDB,而我正在使用discord bot来尝试我的项目。我想做一些事情,但我不知道该怎么做。
第一个问题如下:
@bot.command(pass_context=True)
async def test(ctx, arg:str=None):
db = client.db_test
collection = db["test"]
cursor = collection.find({"permission" : arg})
if perm is not None:
if perm == "x":
for y in cursor:
await bot.say(y)
机器人发送此消息:
{'_id': '<id>', 'name': '<name>', 'permission': 'x'}
但我希望它发送如下:
<name> has permission x
第二个问题如下:
我想检查用户是否拥有“x”权限并打印如下内容:
<name> has permission admin
我该如何解决并做到这一点?
答案 0 :(得分:0)
在此细分中:
for y in cursor:
await bot.say(y)
y
实际上是一个Python dict
,您可以在打印时看到它。在这种情况下,您所要做的就是从字典中获取所需的值并自己创建字符串
那将是(使用 str 的 format()方法:
answer = "{} has permission {}".format(y["name"], y["permission"])
所以,你需要做的就是返回而不是像tis那样:
for y in cursor:
answer = "{} has permission {}".format(y["name"], y["permission"])
await bot.say(answer)