#python #yaml
Вопрос:
У меня есть следующий файл yaml config.yml:
PATH1: /this/is/the/first/path
PATH2: $PATH1/plus/second/path
Я прочитал это на python таким образом:
import yaml
with open("../etc/test.yml", "r") as f:
config = yaml.safe_load(f)
print(config)
и это, очевидно, то, что я получаю, когда печатаю словарь конфигурации:
{'PATH2': '$PATH1/plus/second/path', 'PATH1': '/this/is/the/first/path'}
Что бы я имел вместо этого, так это:
{'PATH2': '/this/is/the/first/path/plus/second/path', 'PATH1': '/this/is/the/first/path'}
Существует ли какой-либо встроенный способ достижения этой цели?
Или я должен создать что-то, чтобы заменить их самостоятельно?
Ответ №1:
Библиотека PY-yaml по умолчанию не разрешает переменные среды. Вам нужно определить неявный распознаватель, который найдет регулярное выражение, определяющее переменную среды, и выполнит функцию для ее разрешения.
это ссылка, которая может помочь вам сделать это https://newbedev.com/how-to-replace-environment-variable-value-in-yaml-file-to-be-parsed-using-python-script