Python操作queue.json新增ctx.guild.id时覆盖原有数据问题求助
问题根因
代码在检测到ctx.guild.id不存在于已读取的Queue字典后,仅将包含新键值对的独立对象写入文件,没有把新条目合并到原有数据中再存储,直接覆盖了全部历史内容。
修复代码
import json # 读取原有全量数据 with open("queue.json", "r") as f: Queue = json.load(f) if ctx.guild.id not in Queue: # 给原有字典新增键值对,而非新建独立字典 Queue[ctx.guild.id] = [] # 将更新后的完整字典写入文件 with open("queue.json", "w") as QueueAddFile: json.dump(Queue, QueueAddFile, separators=(',', ':'))
可选优化项
- 新增文件不存在、JSON格式异常的捕获逻辑,避免首次运行或文件损坏时报错
- 多进程/多实例同时操作文件时,可添加文件锁避免读写冲突导致的数据损坏
内容的提问来源于stack exchange,提问作者PhunderDev
相关产品推荐
相关产品推荐

