小编ju.*_*ju.的帖子

Python/JSON:合并默认配置和用户配置

我在 python 应用程序中使用 JSON 配置文件。我想要一个带有层次结构的默认配置。
用户配置应仅包含与默认值不同的参数。我当前的解决方案是:

# default.json
{
    "parA" : 1,
    "parB" : {
       "sparA" : 0,
       "sparB" : 1
    }
}`

# user.json
{
    "parB" : {
       "sparB" : 9
    }
}
Run Code Online (Sandbox Code Playgroud)

配置是通过加载的

default_json = open("default.json")
default_config = json.load(default_json)
default_json.close()


user_json = open("user.json")
user_config = json.load(user_json)
user_json.close()  

config = default_config.copy()
config.update(user_config)
Run Code Online (Sandbox Code Playgroud)

这样做的问题是,整个密钥“parA”被覆盖,因此“sparA”被删除。有没有一种简单的方法可以只覆盖子键而不覆盖整个父键?

python configuration json

3
推荐指数
1
解决办法
1627
查看次数

标签 统计

configuration ×1

json ×1

python ×1