数据序列化语言---YAML
文章目录
- 1. YAML介绍
- 主要区别总结
- 2. 使用
YAML是一种数据序列化语言,用于以人类可读的形式存储信息。它最初代表“Yet Another MarkupLanguage”,但后来更改为“ YAML Ain’t Markup Language”(YAML不是⼀种标记语言),以区别于真正的标记语言。
它类似于XML和JSON文件,但使用更简洁的语法。
特点:
- YAML 是⼀种非常简单的基于文本的人类可读的语言,用于在人和计算机之间交换数据。
- YAML 是不是⼀种编程语言。它主要用于存储配置信息。
- YAML 的缩进就像 Python 的缩进⼀样优雅。
- YAML 还减少了 JSON 和 XML文件中的大部分“噪音”格式,例如引号、方括号和大括号。
注意:
• YAML 是区分大小写。
• YAML 不允许使用制表符 Tab 键,(你之所按下 Tab YAML 仍能使⽤,是因为编辑器被配置为按下
Tab 键会导致插入适当数量的空格)。
• YAML 是遵循严格缩进的。
1. YAML介绍
YAML 文件的后缀名是 .yaml
或 .yml
,本着能少写不多写的原则,我们常⽤的是 .yml
。
yaml 中支持不同数据类型,但在写法上稍有区别
数据类型 | YAML 语法示例 | JSON 语法示例 |
---|---|---|
简单标量值 | key: value | { |
整数和浮点数 | int_key: 123 | { |
布尔值 | bool_key: true | { |
字符串 | string_key: “This is a string” | { |
列表 | list_key: | { |
映射(字典) | map_key: | { |
嵌套结构 | nested_key: | { |
以上语法若短时间内无法掌握,我们也有很多工具可供使用,如json转yaml
https://www.jashtool.com/json/to-yaml
主要区别总结
- 语法简洁性:YAML 使用缩进和简洁的符号(如
-
表示列表项),而 JSON 使用大括号和方括号 - 注释支持:YAML 支持注释(以
#
开头),JSON 不支持注释 - 字符串引号:YAML 中字符串可以不加引号(除非包含特殊字符),JSON 中所有字符串必须加双引号
- 文件扩展名:YAML 文件通常使用
.yaml
或.yml
,JSON 文件使用.json
2. 使用
yaml 文件通常作为配置文件来使用,可以使用 yaml 库来读取和写入 YAML 文件
- 安装YAML库
pip install PyYAML==6.0.1
- 创建yaml文件
- 读取 写入yaml
import yaml#追加写入
def write_yaml(filename, data):with open(filename, encoding="utf-8", mode="a+") as f:yaml.safe_dump(data, stream=f)#读取
def read_yaml(filename, key):with open(filename, encoding="utf-8", mode="r") as f:data = yaml.safe_load(f)return data[key]#清空
def clear_yaml(filename):with open(filename, encoding="utf-8", mode="w") as f:f.truncate()def test_tml():#写入yaml文件data = {"str": "12345"}write_yaml("test.yml", data)#读取yaml文件ret = read_yaml("test.yml", "str")print("ret:", ret)#清空yaml文件clear_yaml('test.yml')