Python程序更新Cities文件中tickets字典时被清空的问题求助
问题原因
每次运行程序时,Cities模块里的tickets字典都会被重新执行初始化代码(tickets = {}),你对字典的修改仅存在于当前程序运行的内存中,程序结束后所有内存中的修改都会丢失,下次启动自然又回到空字典状态。
解决方案
要实现字典的持久化更新,需要把数据保存到文件里,每次运行时先读取文件中的已有数据,更新后再写回文件。这里用json模块举例(兼容性好,数据可读):
主程序代码修改
import random import json # 读取已有数据,文件不存在则初始化空字典 try: with open('tickets_storage.json', 'r', encoding='utf-8') as f: tickets = json.load(f) except FileNotFoundError: tickets = {} # 添加新的键值对 new_entry = {random.randint(1, 999): random.randint(1, 89898)} tickets.update(new_entry) # 将更新后的字典写入文件 with open('tickets_storage.json', 'w', encoding='utf-8') as f: json.dump(tickets, f, indent=2) print(tickets)
补充说明
- 运行程序时,会自动读取
tickets_storage.json里的历史数据,添加新内容后再保存回去 - 如果你不再需要
Cities模块里的tickets变量,可以直接删除该模块内的tickets = {}定义
内容的提问来源于stack exchange,提问作者Viper
相关产品推荐
相关产品推荐

