有一个代码
import json
up = 5
with open("test.json", "w") as write_file:
json.dump(up, write_file)
它将 up 变量的值写入 test.json 文件。但是您可以看到 test.json 文件在执行该行期间被重置为零(= 0 字节):
with open("test.json", "w") as write_file:
通过在转储命令之前添加延迟可以更清楚地看到这一点:
import json
import time
up = 5
with open("test.json", "w") as write_file:
time.sleep(1)
json.dump(up, write_file)
这是正常的,因为在归零后会写入新数据。但
那么,当程序崩溃时,就可能会丢失json文件的内容
是否有任何标准和不那么标准的方法来避免这种情况?
一种选择,对于特别有价值的数据:
json
为另一个名称(最后您将此重命名的日期时间属性)json
的。优点:
json
,你总是可以回滚到其中一个缺点:
另一种选择,节省空间:
json
到 name.oldjson
用正常的名字写新的json
的优点:
json
使用它通常的名称(好吧,或者至少是 name.old,如果录制过程不知何故发生了故障)缺点:
json
(好吧,或者两个版本 - name.old 不能被删除)您仍然可以以某种方式组合这些选项和其他选项。例如,您可以
zip
在一周内将旧版本存档到存档等,这通常使用必要的日志来完成。