use*_*052 6 python storage json updating file
我正在使用Python,我有一个JSON文件,我想在其中更新与给定密钥相关的值.也就是说,我有my_file.json包含以下数据
{"a": "1", "b": "2", "c": "3"}
Run Code Online (Sandbox Code Playgroud)
我想只更改与b键相关的值2,9以便更新的文件看起来像:
{"a": "1", "b": "9", "c": "3"}
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
我尝试了以下但没有成功(更改未保存到文件中):
with open('my_file.json', 'r+') as f:
json_data = json.load(f)
json_data['b'] = "9"
f.close()
Run Code Online (Sandbox Code Playgroud)
DrV*_*DrV 10
您根本没有保存更改的数据.您必须先加载,然后修改,然后才能保存.无法就地修改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))
Run Code Online (Sandbox Code Playgroud)
你也可以这样做:
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()
Run Code Online (Sandbox Code Playgroud)
如果要使其安全,首先将新数据写入同一文件夹中的临时文件,然后将临时文件重命名为原始文件.这样,即使中间发生了某些事情,您也不会丢失任何数据.
如果您考虑到这一点,JSON数据很难就地更改,因为数据长度不固定,并且更改可能非常重要.
| 归档时间: |
|
| 查看次数: |
21335 次 |
| 最近记录: |