我正在尝试记录在特定用户上使用命令的次数,然后将其写入要在每次触发命令时添加的文件。
这是我试图为
执行此操作的命令@client.command(pass_context=True)
async def boop(ctx):
mentions = ctx.message.mentions
for user in mentions:
await client.say("{} has been Boop'ed!".format(user))
我正在尝试将一个数字和userid
一起写入json文件。
答案 0 :(得分:0)
最简单的方法可能是维护一个字典,将用户映射到他们被提到的次数。然后,您只需使用json.dump
将其发送到文件即可。您应该注意,这不能很好地扩展。如果您发现自己经常更新此文件,则应考虑切换到异步数据库(特别是因为文件写入是阻塞操作)。
import json
from collections import Counter
boop_dict = Counter()
@client.command(pass_context=True)
async def boop(ctx, *users: discord.User):
for user in users:
await client.say("{} has been Boop'ed!".format(user))
boop_dict[user.id] += 1
with open('boop_file.json', 'w+') as f:
json.dump(boop_dict, f)