如果他们不存在,我如何使我的不和谐机器人将某人添加到json文件中

时间:2020-06-18 14:47:20

标签: python discord

我正在使经济机器人不和谐,它将把用户的钱存储在json文件中。但是我不知道如何使它添加另一个用户到json文件中,如果他们还没有的话。

async def work(ctx):
    oldmny=json.load(open("money.json", "r"))[str(ctx.author.id)]
    newmny=random.randint(10,100)
    nowmny=oldmny+newmny
    x={
        str(ctx.author.id):nowmny
}
    json.dump(x, open("money.json", "w+"), indent = 4)```

1 个答案:

答案 0 :(得分:0)

在您的代码中,您为x分配了一个全新的字典,其中包含一个键/值对。然后,您将该字典写入读取的JSON文件中。相反,您应该更新从JSON文件加载的字典,然后将更新后的字典写回到该文件。您的代码应为:

async def work(ctx):
    money = json.load(open("money.json", "r"))
    oldmny = [str(ctx.author.id)]
    newmny = random.randint(10,100)
    nowmny = oldmny + newmny
    money[ctx.author.id] = nowmny
    json.dump(money, open("money.json", "w+"), indent = 4)

但是请注意,您正在使用JSON作为数据存储,并且任何更新(即使是单个项目(如您的情况))都将需要对整个文件进行完整读取和完整写入。这并不是JSON文件真正适合的。它们更适合在进程之间发送数据,或记录不经常加载甚至更新不频繁的数据。