您根本没有保存更改的数据。您必须先加载,然后修改,然后再保存。无法就地修改JSON文件。
with open('my_file.json', 'r') as f:
json_data = json.load(f)
json_data['b'] = "9"
with open('my_file.json', 'w') as f:
f.write(json.dumps(json_data))
您也可以这样做:
with open('my_file.json', 'r+') as f:
json_data = json.load(f)
json_data['b'] = "9"
f.seek(0)
f.write(json.dumps(json_data))
f.truncate()
如果要确保安全,请首先将新数据写入同一文件夹中的临时文件,然后将该临时文件重命名为原始文件。这样,即使之间发生任何事情,您也不会丢失任何数据。
如果您想到这一点,JSON数据就地更改非常困难,因为数据长度不是固定的,并且更改可能非常重要。