【发布时间】:2020-03-19 15:37:46
【问题描述】:
我打算使用 json 作为配置文件,目前我有一个这样的配置
{
"settings": {
"general": "root",
"folder": "folder_test"
},
"TEST1": {
"dataone": "xyz",
"testing": {
"a": "$general/$folder/test.png",
"b": "$general/$folder/test.png"
},
"SOMELIST": [
"$general/$folder/test.png",
"$general/$folder/test.png"
]
},
"TEST2": {
"dataone": "xyz",
"testing": {
"a": "$general/$folder/test.png",
"b": "$general/$folder/test.png"
},
"something": {
"test_data": {
tester: {
"abc": "$general/$folder/test.png",
"zxv": "$general/$folder/test.png"
}
}
}
}
}
我的目的是让设置部分填充静态路径,例如根目录和文件夹名称等,并让配置的其余部分贯穿整个配置层次结构,以将设置用作变量。这是为了路径和文件夹的目的,如果根或新文件夹更改/添加,我以后维护时不会有任何问题。
我希望配置能够在以后的任何层次结构中使用所有设置变量,即使将来有新添加的级别也是如此。
到目前为止,我只能循环一个级别,但不确定如何访问多个级别。
for k, v in config.items():
for key in config.keys():
if key in v:
config[k] = v.replace("$" + key, config[key])
在 stackoverflow 的另一个主题中找到了这个,但这只是一个级别。我不确定如何在这里构建一个可以包含多个级别的通用级别。
【问题讨论】: