一、基本语法
YAML 是一种标记语言,意为 “YAML Ain’t Markup Language”(YAML 不是标记语言)。它使用空格(缩进)来表示层次结构,用冒号表示键值对,使得其语法简洁优雅。下面来看一个 YAML 文件的例子:
# A list of fruits fruits: - Apple - Orange - Banana # A mapping of employee information employee: name: John Doe age: 26 gender: Male department: Sales
通过这个例子,我们可以看到 YAML 格式的特点:
- 使用缩进来表示层次结构;
- 使用冒号来表示键值对;
- 使用 # 来注释。
二、数据类型
YAML 支持多种数据类型,包括字符串、数字、布尔值、时间、null 等,下面来一个一个介绍。
1. 字符串
YAML 字符串可以使用单引号或双引号包裹,使用双引号的字符串支持转义字符和特殊符号,例如:
# Single quotes str1: 'This is a string' # Double quotes str2: "This is another string with a \n line break and a \t tab"
2. 数字
YAML 支持整数和浮点数,没有复数和科学计数法,例如:
# Integer num1: 123 # Float num2: 3.14
3. 布尔值
YAML 支持 true 和 false 两种布尔值,例如:
# true bool1: true # false bool2: false
4. 时间
YAML 时间使用 ISO 8601 格式表示,例如:
# Date date: 2022-01-01 # Time time: 08:30:00 # Datetime datetime: 2022-01-01T08:30:00Z
5. null
YAML 支持 null,表示空值,例如:
# Null null1: null null2:
三、工具
除了手写 YAML 文件,我们也可以使用一些工具来帮助我们生成、解析和验证 YAML 文件。
1. YAML To JSON 转换器
这是一个在线工具,可以将 YAML 文件转换为 JSON 格式。它支持将 YAML 文件从本地上传,也支持将 YAML 文件从 URL 导入,非常方便实用。链接:https://www.convertjson.com/yaml-to-json.htm
2. PyYaml 库
PyYaml 是 Python 语言的一个 YAML 库,可以方便地将 YAML 文件转换为 Python 对象,或将 Python 对象转换为 YAML 文件。
下面是一个将 YAML 文件转换为 Python 对象的示例:
import yaml with open('data.yaml', 'r') as f: data = yaml.load(f, Loader=yaml.FullLoader) print(data)
下面是一个将 Python 对象转换为 YAML 文件的示例:
import yaml data = { 'fruits': [ 'Apple', 'Orange', 'Banana' ], 'employee': { 'name': 'John Doe', 'age': 26, 'gender': 'Male', 'department': 'Sales' } } with open('data.yaml', 'w') as f: yaml.dump(data, f)
3. YAML Validator
YAML Validator 是一个在线工具,可以验证 YAML 文件的语法是否正确,非常实用。链接:http://www.yamllint.com/
总结
YAML 是一种简洁优雅的标记语言,使用缩进和冒号表示层次结构和键值对,支持多种数据类型,包括字符串、数字、布尔值、时间和 null。我们可以使用 PyYaml 库将 YAML 文件转换为 Python 对象,或将 Python 对象转换为 YAML 文件;使用 YAML Validator 工具验证 YAML 文件的语法是否正确。