美文网首页
YAML的数据结构及其封装

YAML的数据结构及其封装

作者: 猪儿打滚 | 来源:发表于2019-11-08 11:04 被阅读0次

    基础语法规则

    • 大小写敏感
    • 使用空格缩进来表示层级关系
    • 缩进时,不允许使用Tab键,只允许使用空格
    • 缩进的空格数目不重要,同一层级的元素左侧都对齐即可;不对齐则属于不同层级的元素
    • #:行注释

    数据结构

    1、YAML支持三种数据结构:
    • 对象:{}
      key-value的集合,又称为映射(mapping)、哈希(hashes)、字典(dictionary)
    • 数组:[]
      一组按照顺序排列的值,又称为序列(sequence)、列表(list)
    • 纯量/scalars
      单个、不可拆分的、原子性的值:str、int、float、boolean、Null、时间、日期
    2、YAML对应的数据结构表达方式
    • 对象
    # 常用::号表示
    animal: cat
    cat: "橘猫"
    # 或者:{}
    animal:{name: cat, colour: orange}
    
    • 数组
    # 常用:-号表示
    - cat 
    -dog
    - bird
    # 或者:[]表示
    animal:[cat, dog]
    
    • 对象+数组
    animal:
     - cat
     - dog
     - bird
    languages:
     - java
     - python
     - js
    
    • 纯量
    # 特殊:字符串有五种表现格式
    str:  我是字符串
    str:  '内容:字符串'
    str: '内容\n字符串'
    str: "内容\n字符串"
    str: 'today''hahaha'
    

    YAML的两种写法

    • 1.使用常用方式来书写
    animal:
      cat:
        name: 哈皮
        hobby:
          - 玩耍
          - 晒太阳
        eat:
          - 猫粮
          - 鸡胸肉
    address:
      number: 1
      city: 广州
    
    • 2.不常用的方法
    animal:
      cat: {cat:哈皮, hobby: [玩耍, 晒太阳], eat: [猫粮, 鸡胸肉]}
      address: {number: 1, city: 广州}
    

    安装

    pip install pyyaml --trusted-host http://pypi.douban.com/

    封装常用的读写即可

    import yaml
    
    
    class ComYaml:
    
        def __init__(self):
            pass
    
        def read_yaml(self, filepath):
            try:
                return yaml.load(open(filepath, 'r', encoding='utf-8'), Loader=yaml.FullLoader)
            except Exception as es:
                print(F'读取{filepath}文件出错,错误是{es}')
                return False
    
        def write_yaml(self, filepath, data, mode='w'):
            try:
                with open(filepath, mode, encoding='utf-8') as f:
                    yaml.dump(data, f)
                return True
            except Exception as es:
                print(F'内容:{data}\n写入{filepath}文件出错,错误是{es}')
                return False
    

    相关文章

      网友评论

          本文标题:YAML的数据结构及其封装

          本文链接:https://www.haomeiwen.com/subject/mokibctx.html