Yaml简述及文件读写

Posted 写Bug的徐同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yaml简述及文件读写相关的知识,希望对你有一定的参考价值。

语法规则

  1. 大小写敏感
  2. 使用缩进表示层级关系
  3. 缩进时不允许使用 Tab 键,只允许使用空格
  4. 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

支持的数据结构

  1. 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  2. 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
  3. 纯量(scalars):单个的、不可再分的值
    • 字符串
    • 布尔值
    • 整数
    • 浮点数
    • None(Null/null/~)
    • 日期datetime(2021-01-01)

锚点和引用

  • 锚点&:标注一个内容,锚点名称自定义
  • 引用*:使用被标注的内容<<: *锚点名

Yaml文件示例

---
# page1
login: &md
  - id
  - 'test'
out:
  - css
  - None
  - *md
---
# page2
login:
  - css
  - '9'

Yaml 文件读取

#!/usr/bin/python3
# _*_coding=utf-8 _*_
# @author junwei
import yaml


def read_yaml(file_path='./yaml.yaml', page_num=0):
    """
    读取yaml文件(多页面)
    :param file_path:
    :param page_num: yaml中第几个页面的元素(从0开始)
    :return:指定页的数据
    """
    result = []
    file = open(file_path, encoding='utf-8')
    # 返回结果为一个生成器
    obj = yaml.load_all(file, Loader=yaml.FullLoader)
    for i in obj:
        result.append(i)
    return result[page_num]


def yaml_write(data, file_path='./yaml.yaml', mode='w'):
    """
    写入yaml文件
    :param file_path:
    :param data:
    :param mode:
    :return:
    """
    with open("%s" % file_path, "%s" % mode) as f:
        yaml.dump(data, f, encoding='utf-8', allow_unicode=True)


if __name__ == '__main__':
    data = {'Search_Data': {
        'search_test_002': {'expect': {'value': 'a'}, 'value': 'b'},
        'search_test_001': {'expect': [4, 5, 6], 'value': 456}}}
    yaml_write(data, 'a')

以上是关于Yaml简述及文件读写的主要内容,如果未能解决你的问题,请参考以下文章

yml文件读写

Java+操作配置文件+yaml文件读写

Java+操作配置文件+yaml文件读写

c++ 开发中利用yaml-cpp读写yaml配置文件

简述ic卡芯片内部结构,工作原理及应用。

简述rfid定义 组成及工作原理