Я планирую использовать 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"
}
}
}
}
}
Моя цель состоит в том, чтобы раздел настроек заполнялся stati c path, например root и имя папки et c и оставьте остальные части конфигурации по всей иерархии конфигурации, чтобы использовать параметры в качестве переменной. Это для целей пути и папки, которые я не буду испытывать при последующем обслуживании, если root или новая папка будут изменены / добавлены.
Я хотел, чтобы в конфигурации была возможность использовать все переменные настроек на всех уровнях иерархии позже, даже с новыми добавленными уровнями в будущем.
пока я могу только l oop один уровень, но не уверен, как получить доступ к нескольким уровням в целом.
for k, v in config.items():
for key in config.keys():
if key in v:
config[k] = v.replace("$" + key, config[key])
нашел это в другой топи c здесь в stackoverflow, но это только один уровень. Я не уверен, как построить общий, который может включать несколько уровней здесь.