简介:YAML是一个可读性高,用来表达数据序列化的格式。YAML参考了其他多种语言,包括:C语言、Python、Perl,并从XML、电子邮件的数据格式(RFC 2822)中获得灵感。YAML是"YAML Ain’t a Markup Language"(YAML不是一种标记语言)的递归缩写。由于实现简单,解析成本很低,YAML特别适合在脚本语言中使用。

基本语法:在Python中程序中的配置文件会经常使用yaml。

大小写敏感
使用缩进表示层级关系
缩进不允许使用tab,只允许空格
缩进的空格数不重要,只要相同层级的元素左对齐即可
'#'表示注释

安装:

pip install pyyaml

写入范例:

特殊说明1:allow_unicode=True,解决存储时unicode编码问题。

特殊说明2:sort_keys=False,解决写入yaml的数据则不会排序后写入。

# -*-coding:utf-8 -*-
import yaml

file = "a.yaml"
with open(file, "w", encoding='utf-8')as f:
    data = {
        "name": "Tom",
        "age": 25,
        "hobby": ["Singing", "dancing", "rap", "basketball"],
        "game": {
            "ps5": ["最终幻想", "地平线:禁忌西部"],
            "switch": ["动森", "塞尔达传说"],
        }
    }
    
    # allow_unicode=True,解决存储时unicode编码问题。
    # sort_keys=False,解决写入yaml的数据则不会排序后写入。
    f.write(yaml.dump(data, allow_unicode=True, sort_keys=False))

执行写入结果:

图片

读取范例:

# -*-coding:utf-8 -*-
import yaml

file = "a.yaml"

# 方式一
with open(file, encoding='utf-8')as f:
    data = yaml.load(f, Loader=yaml.FullLoader)
    print(data)  
    print(type(data))  # dict 类型。

print("*" * 80)


# 方式二
with open(file, encoding='utf-8')as f:
    data2 = f.read()
    print(data2)  
    print(type(data2))  # str 类型。

读取执行结果:

图片

微信公众号:玩转测试开发
欢迎关注,共同进步,谢谢!

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐