如何删除JSON文件中的指定键值对?现有Python代码未生效求协助
解决JSON文件中删除指定键未生效的问题
你的代码逻辑本身是对的,但只在内存中修改了数据,没有将修改后的内容写回原JSON文件,所以文件里的内容依然没有变化。
原JSON文件内容(reda.json)
[{"carl": 33}, {"carl": 55}, {"user": "user2", "id": "21780"}, {"user": "user2"}, {"user": "123"}, {"user": []}, {"user": []}]
原代码问题点
这段代码仅加载并修改了内存中的数据,缺少写回文件的步骤:
import json json_data = json.load(open('reda.json')) k = "carl" for d in json_data: if k in d: del d[k]
修改后的完整代码
import json # 加载JSON数据 with open('reda.json', 'r', encoding='utf-8') as f: json_data = json.load(f) # 删除指定键 k = "carl" for d in json_data: if k in d: del d[k] # 将修改后的数据写回文件 with open('reda.json', 'w', encoding='utf-8') as f: json.dump(json_data, f, ensure_ascii=False, indent=2)
关键说明
- 使用
with语句打开文件,会自动处理文件关闭,避免资源泄漏 json.dump时添加indent=2可以让输出的JSON格式更工整,方便查看ensure_ascii=False保证如果JSON中有中文时不会被转义(这里虽然没有中文,但加上更通用)
内容的提问来源于stack exchange,提问作者Icezua
相关产品推荐
相关产品推荐

