You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3修改JSON文件指定键值并维护文件完整性的技术咨询

JSON文件修改的正确写法与文件模式解析

两种JSON写入写法的对比

  • 错误写法(嵌套json.dumps+json.dump):这种写法完全不符合JSON规范,json.dumps(data)已经把Python对象转成了JSON字符串,再用json.dump写入时,会把这个字符串当成普通文本处理,自动添加转义字符,最终生成的文件是“JSON字符串嵌套JSON”的冗余格式,不仅体积翻倍,后续用json.load读取时还会报错,因为内容不是标准JSON结构。
  • 正确写法(直接json.dump(data, jf)):这是Python处理JSON文件的标准写法,json.dump会直接将Python对象序列化为标准JSON格式写入文件,生成的文件体积小、结构合法,后续可以直接用json.load读取,完全符合Python的代码风格。

文件完整性说明

只要操作过程中没有出现磁盘故障、程序崩溃等异常,直接用json.dump写入的文件是完整的标准JSON,不会有完整性问题;而嵌套写法生成的是无效的JSON文件,相当于内容损坏,无法正常解析。

文件打开模式r+和w+的含义

  • r+:读写模式,要求文件必须存在。打开后文件指针默认在文件开头。如果直接写入,会从开头开始覆盖原有内容;如果要修改整个文件,需要先读取全部内容,修改后将指针移到开头(jf.seek(0)),写入新内容后还要调用jf.truncate()截断多余的旧内容,否则原文件中未被覆盖的部分会残留,导致文件内容混乱。
  • w+:读写模式,文件不存在则创建,存在则直接清空原有内容。打开后文件指针在开头,写入的新内容会完全替换原文件,不需要处理截断操作,是修改整个JSON文件时更常用、更省心的模式。

内容的提问来源于stack exchange,提问作者noydb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 09:45:38