zoukankan      html  css  js  c++  java
  • Python中多个yaml文件之间的调用

    需求:有两个yaml文件 a.yaml、b.yaml ,现在想在a.yaml文件中使用b.yaml的内容

    说明:方法不唯一,我们也可以直接在yaml中使用分隔符(---) 来写多个文件内容,但是下面主要讲解多个yaml文件

    步骤:(1)定义两个yaml文件  (2)调用方法 (3)查看结果

    一、定义两个yaml文件,分别如下:

    b.yaml文件内容如下:

    - basketball   #amazing
    - Table-Tennis
    - swim
    - haha
    

    a.yaml文件内容如下:注意 ,在a 文件中我通过!include  调用了b文件的内容(!include方法需要自己定义,接下来讲解)

    name: demo  #中文注释
    age: 18
    hobby: !include b.yaml      #这里调用了b文件的内容
    

    二、调用方法

    重新定义一个yamlMany.py文件来查看结果,这里面定义了一个class,里面有!include 的来源说明(官网的例子,也可以直接去官网查看)

    import yaml
    import os.path
    class Loader(yaml.Loader):
        def __init__(self, stream):
            self._root = os.path.split(stream.name)[0]
            super(Loader, self).__init__(stream)
        def include(self, node):
            filename = os.path.join(self._root, self.construct_scalar(node))
            with open(filename, 'r') as f:
                return yaml.load(f, Loader)
    Loader.add_constructor('!include', Loader.include)
    
    if __name__ == '__main__':
        with open('../data/a.yaml', 'r',encoding='UTF-8') as f:
            result = yaml.load(f, Loader)
            print(result)
    

      

    三、查看结果

    补充拓展:在被调用文件中(这里指b.yaml),我们尽量不要去使用中文的注释信息,否则可能会报编码错误的问题,切记!!!

  • 相关阅读:
    几种排序方法详解(选择排序、冒泡排序、插入排序、快速排序)
    几种排序方法详解(选择排序、冒泡排序、插入排序、快速排序)
    Cookie
    ajax
    layer弹出框
    Session
    Cookie
    顺时针打印矩阵
    常用判断
    基础学习
  • 原文地址:https://www.cnblogs.com/yanghr/p/14392509.html
Copyright © 2011-2022 走看看