开始尝试使用discord.py的重写分支将信息保存到JSON文件。
我发出了一条命令来读取文件并使用此代码保存到文件中
@client.command()
async def sejoin(ctx, accType):
with open('scores.json', 'r') as f:
users = json.load(f)
await update_data(users, ctx.author, accType)
with open('scores.json', 'w') as f:
json.dump(users, f, indent=2)
async def update_data(users, user, accType):
if user.id in users:
print(f"User {user} tried to join twice.")
return
if user.id not in users:
users[user.id] = {}
users[user.id]['name'] = user.name
users[user.id]['score'] = 0
users[user.id]['hastask'] = False
users[user.id]['completed'] = 0
users[user.id]['type'] = accType
它在技术上是可行的,但是如果我第二次输入命令,它仍然会第二次写入。
第3次没有任何反应。我尝试了几种不同的方法来检查用户ID是否在文件中,但得到的结果相同。
编辑:将数据两次添加到文件后,将忽略打印语句。