【发布时间】:2021-10-27 11:37:18
【问题描述】:
我的代码有一个大问题,过去 3 小时我无法在互联网上找到任何东西,所以我在这里问。我正在尝试将 ctx.guild.id 作为新变量添加到我的 json“queue.json”文件中,但显然每次我运行此代码时,它都不会在新行中添加新变量,而是会覆盖之前添加的变量.这是我的代码:
with open("queue.json", "r") as f:
Queue = json.load(f)
if not ctx.guild.id in Queue:
with open("queue.json", "w") as QueueAddFile:
NewQueueID = {ctx.guild.id : []}
json.dump(NewQueueID, QueueAddFile, separators=(',', ':'))
【问题讨论】:
-
您不能为 json 文件中的键分配多个值,因此当您执行此操作时,它基本上会覆盖旧值。
-
@AnatoleSot 但它只在 ID 不在字典中时运行
-
您没有将
ctx.guild.id添加为 json 中的新键,而是将其设置为 only 键。您需要执行Queue[ctx.guild.id] = []之类的操作并将Queue写回文件。 -
ctx.guild.id 总是不同的数字,所以应该没有问题
-
再次声明,您没有在此处添加新密钥。您写入文件的 json 仅包含您的新值,没有其他内容。你已经扔掉了
Queue中的所有内容。
标签: python json python-3.x discord.py