如何修改JSON文件中的多个值且无需每次单独写入文件
一次性修改JSON多值,避免重复写入文件
你当前的代码存在冗余操作:每次修改一个字段就重复打开文件写入,而且第一次写入时还未执行任何修改(修改操作在json.dump之后),完全没必要。正确的做法是:先把JSON文件加载到内存,一次性完成所有字段修改,最后只写入一次文件即可。
优化后的代码如下:
import json json_file = "/home/api_keys.json" # 1. 将JSON文件加载到内存字典 with open(json_file, "r") as json_data: data = json.load(json_data) # 2. 一次性完成所有需要修改的字段 data["keys"]["personal"]["api_key"] = "9999" data["keys"]["personal"]["client_id"] = "000000000000" data["keys"]["personal"]["client_secret"] = "hyfgdjocoduxbxlwowichcnckw" # 3. 仅写入一次文件,覆盖原内容 with open(json_file, "w") as jsonFile: json.dump(data, jsonFile, indent=4) # indent参数可选,用于格式化输出JSON,方便阅读 # 可选:验证修改结果 with open(json_file, "r") as json_data: updated_data = json.load(json_data) api_key = updated_data["keys"]["personal"]["api_key"] client_id = updated_data["keys"]["personal"]["client_id"] client_secret = updated_data["keys"]["personal"]["client_secret"] print(f"修改后的api_key: {api_key}") print(f"修改后的client_id: {client_id}") print(f"修改后的client_secret: {client_secret}")
核心优化点:
- 内存操作远快于磁盘IO,一次性修改再写入,既高效又避免重复IO操作
indent=4参数可以让写入的JSON保持格式化结构,和原文件风格一致,若不需要可直接去掉- 验证步骤为可选操作,确认修改逻辑无误后可省略
内容的提问来源于stack exchange,提问作者bob_the_bob
相关产品推荐
相关产品推荐

