Python如何修改并保存本地JSON文件中已存在的键对应的值
Python修改JSON文件已有条目的实现方案
你现有代码的核心问题有两个:
- 新增条目的逻辑顺序错误:先执行了写入操作再更新字典,导致新增的内容不会被写入文件
- 缺失已有条目修改、写入的对应逻辑
修复后的完整代码
import json # 加载JSON文件到字典 with open("prefix.json", 'r', encoding='utf-8') as f: data = json.load(f) def changeprefix(id, prefix): global data # 不管是新增还是修改,直接更新字典对应键的值即可 data[id] = prefix # 更新完成后统一写入文件 with open("prefix.json", "w", encoding='utf-8') as f: json.dump(data, f, indent=4) # 示例1:修改已有item的值为text here changeprefix("item", "text here") # 示例2:新增id为6,值为?的条目 changeprefix("6", "?")
逻辑说明
- JSON文件加载到Python中后就是普通的字典对象,直接用
data[键名] = 新值的方式就能完成新增/修改操作 - 字典修改完成后统一执行
json.dump写入文件即可覆盖原文件内容,完成保存 - 新增
encoding='utf-8'参数可以避免中文乱码问题,如果你的JSON没有中文可以省略
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

