Discord漫游器会在每次启动时覆盖先前存储在json文件中的数据

时间:2019-03-28 22:39:03

标签: python json discord.py-rewrite

我试图用我的机器人为用户创建货币系统,但是每次我重新启动该机器人时,所有帐户和金额都会被覆盖和/或删除。

我已经切换了打开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")

我希望用户创建一个帐户后,只需做一次,而不必再担心,但是他们必须继续创建帐户,并在有人创建另一个帐户后重新启动擦除整个文件。

1 个答案:

答案 0 :(得分:0)

您正在以写入模式打开文件,这会丢弃它们的内容。而是以读取模式打开它们:

with open('amounts.json', 'r') as f: 
    amounts = json.load(f)

有关可用于打开文件的各种模式及其作用的更多信息,请参见documentation for open