• 初识yaml语言之yaml读写操作


    简介

    在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)。

    最后开发者又改变了原来的想法,改为:

    YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言)。

    上面这些不重要,我们只需要知道YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便就行。

    注意格式:

    '#'表示注释

    大小写敏感

    使用缩进表示层级关系

    缩进不允许使用tab,只允许空格。缩进的空格数不重要,只要相同层级的元素左对齐即可 

    支持的数据类型

    对象:键值对的集合,又称为映射/ 哈希 / 字典

    数组:一组按次序排列的值,又称为序列 / 列表

    纯量:单个的、不可再分的值

    yaml对象

    对象键值对使用冒号结构表示 key: value,冒号后面要加一个空格,固定写法。

    也可以使用 key:{key1: value1, key2: value2, ...}。 还可以使用缩进表示层级关系,注意不要使用tab,冒号后面有空格。

    其他类型暂时没有用到,我就没有去了解 

    PyYaml是python的一个专门对yaml文件操作模块,使用起来比较简单

    安装方法

    pip install PyYaml

    既然是配置文件,那肯定要读取或者写入了,如何操作呢,继续看。。

    新建一个.yml的文件

    然后将上面图一的格式内容复制到yml中

    对这个配置文件进行读取和写入操作

    代码如下:

    import pprint
    import yaml
    
    #读yaml
    with open('conf.yml', 'r', encoding='utf-8') as fs:
        data = yaml.safe_load(fs)  #解析yaml文件内容并生成python对象
        pprint.pprint(data)        #打印
    
    #写yaml
    data_w={'psw': {'new': 'abcdefg', 'old': 'abcdefgwj'}}
    with open('conf.yml','w') as fs:     #写入模式
        data2=yaml.safe_dump(data_w,fs)  #将python对象转化为yaml流
    
    #重新再读取yaml文件
    with open('conf.yml','r') as fs:
        # 也是解析yaml文档,但是有一个Loader参数,默认为空。Loader=yaml.FullLoader解决告警问题
        data3=yaml.load(fs,Loader=yaml.FullLoader)
        pprint.pprint(data3)

    打印结果如下:

  • 相关阅读:
    Java笔记(二十一) 动态代理
    Java笔记(二十) 注解
    Java笔记(十九) 反射
    Java笔记(十八)同步和协作工具类
    Java笔记(十七) 异步任务执行服务
    Spring使用笔记(四) 面向切面的Spring
    Spring使用笔记(三) 高级装配
    Java笔记(十六)并发容器
    Java笔记(十五) 并发包
    Java笔记(十四) 并发基础知识
  • 原文地址:https://www.cnblogs.com/king2/p/13695281.html
Copyright © 2020-2023  润新知