我试图用我的机器人为用户创建货币系统,但是每次我重新启动该机器人时,所有帐户和金额都会被覆盖和/或删除。
我已经切换了打开json文件的方式,而我打开的是'a +',但是我的问题仍然存在
def _save():
with open('amounts.json', 'a+') as f:
json.dump(amounts, f)
def _invs():
with open('inv.json', 'a+') as f:
json.dump(inv, f)
@commands.command(pass_context=True)
async def register(self, ctx):
id = int(ctx.message.author.id)
if id not in amounts:
amounts[id] = 100
inv[id] = ("holder item, ")
await ctx.send("You are now registered for an account")
_save()
_invs()
else:
await ctx.send("You already have an account")
我希望用户创建一个帐户后,只需做一次,而不必再担心,但是他们必须继续创建帐户,并在有人创建另一个帐户后重新启动擦除整个文件。
答案 0 :(得分:0)
您正在以写入模式打开文件,这会丢弃它们的内容。而是以读取模式打开它们:
with open('amounts.json', 'r') as f:
amounts = json.load(f)
有关可用于打开文件的各种模式及其作用的更多信息,请参见documentation for open
。