python实现yaml文件嵌套

python如何实现在A.yaml内再嵌套B.yaml文件的读取

       利用PyYAML包读取yaml文件后,生成dict或list对象,内部可以包含 dict 和 list 对象,我们需要匹配父yaml文件里的所有值,判断哪些值是嵌套的子yaml文件对象,再将子yaml读取到父yaml上。具体操作:

定义父yaml father.yaml

a1: a1
b1:type: include_yaml  #确定include_yaml 类型为嵌套文件file: "./childer.yaml" # 嵌套子yaml路径
c1:- type: include_yamlfile: "./childer.yaml"- type: include_yamlfile: "./childer.yaml"

定义子yaml childer.yaml

c1: c1
d1: d1

编写嵌套方法 include_yaml.py

import yamlwith open('./father.yaml','r') as f:father_yaml = yaml.load(f,Loader=yaml.FullLoader)def include_yaml(yaml_):if isinstance(yaml_,dict):yaml_copy = yaml_.copy()if yaml_.get('type')=='include_yaml':with open(yaml_.get('file'),'r') as f:childer_yaml = yaml.load(f,Loader=yaml.FullLoader)yaml_copy = childer_yaml.copy()else:for k1,v1 in yaml_.items():yaml_copy[k1] = include_yaml(v1)elif isinstance(yaml_,list):yaml_copy = [include_yaml(x) for x in yaml_].copy()else:yaml_copy = yaml_# print(yaml_copy)return yaml_copyinclude_yaml(father_yaml)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部