Замените токены в файле yaml python

#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