解析YAML文件并代入模板

我有一堆YAML文件在一个配置文件夹和模板文件夹中的一堆模板。 是否有一个简单的单行程序或函数可用于解析YAML文件并替换模板文件以生成可执行脚本

输入:
config文件夹: config/yaml1config/yaml2config/yaml3.
模板: template/template1template/template2template3

产量
scripts/script1script2script3

脚本的数量=模板的数量

有2种类型的模板

一个是直截了当的替代例子

YAML1:
    Titles:4
    SubTitles:10
Template1:
Number of Titles {Titles} where as Number of Subtitles is {SubTitles}

其他模板是嵌套的。 基本上模板需要基于YAML循环例子:

YAML2:
    Book: "The Choice of using Choice"
        Author: "Unknown1"
    Book: "Chasing Choices"
        Author:"Known2"
Template2
Here are all the Books with Author Info
The author of the {Book} is {Author}

我不完全确定你要完成什么,我不知道你的可执行脚本是什么意思? 如果我正确解释它,您可能会从PyYAML文档中获益。 具体来说,关于YAML标签和Python类型的部分。

有几个YAML标签允许调用python模块或包,并且包参数由它下面的嵌套YAML标签填充。 所以,你将不得不编写一个消耗YAML kwargs的类或函数,但是你只需在YAML配置中调用它就像这样一行,

!!python/object/apply:module.function [argument, ...] 

尽管你可能也会从看到关于构造函数,表示符和解析器的部分以及python文档中的string.Template中受益。

理论上,您应该能够从YAML文件中调用substitution()函数。


YAML不知道有关模板的任何信息,而且您也没有指定需要更新的模板类型。 但是,如果您使用的模板语言假设其替代值来自Python字典中的键值对,那么您可以在YAML文件中指定顶级映射,加载该映射(将构建到Python中字典),然后将其馈入模板引擎。

你仍然需要遍历你的文件,所以只需几行代码就可以实现上述目标。

链接地址: http://www.djcxy.com/p/38625.html

上一篇: resolving YAML files and substituting into templates

下一篇: Split range into range of overlapping ranges