У меня есть YAML файл (all.yaml
), который выглядит следующим образом:нагрузки YAML вложен Jinja2 в Python
...
var1: val1
var2: val2
var3: {{var1}}-{{var2}}.txt
...
Если я загрузить его в Python, как это:
import yaml
f = open('all.yaml')
dataMap = yaml.safe_load(f)
f.close()
print(dataMap["var3"])
выход {{var1}}-{{var2}}.txt
и не val1-val2.txt
.
Возможно ли заменить вложенные вары на значение?
Я пытался загрузить его с:
import jinja2
templateLoader = jinja2.FileSystemLoader(searchpath="/path/to/dir")
templateEnv = jinja2.Environment(loader=templateLoader)
TEMPLATE_FILE = "all.yaml"
template = templateEnv.get_template(TEMPLATE_FILE)
Исключение больше не кинули, теперь я застрял и должны исследовать, как поступить.
Вы, очевидно, нужно будет использовать jinja2 в какой-то момент. что ты уже испробовал? – larsks
я пытался загрузить его с импорта Jinja2 templateLoader = jinja2.FileSystemLoader (SearchPath = "/") templateEnv = jinja2.Environment (Загрузчик = templateLoader) файла_с_шаблоном = "all.yaml" шаблон = templateEnv.get_template (файла_с_шаблоном) но это бросит TemplateNotFound-Exception –
Лучше обновить свой ответ, а не пытаться оставить образцы кода в комментариях. Исключение 'TemplateNotFound' должно быть относительно легко разрешено; маловероятно, чтобы ваши файлы 'all.yml' находились в'/', но именно там вы сказали Jinja2 посмотреть. – larsks