YAML(Yet Another Markup Language)是一种人类可读的数据序列化格式,常用于配置文件和数据交换。它的语法简洁、易读、易写,可以用于多种编程语言和平台。
YAML 的语法结构类似于 JSON 和 XML,但更加简洁易懂。它使用缩进表示层次结构,使用冒号表示键值对。下面是一个 YAML 示例:
yaml
Copy
YAML 示例
name: John
age: 30
address:
city: New York
state: NY
zip: 10001
上面的 YAML 文件表示一个人的基本信息,包括姓名、年龄和地址。其中 address 是一个嵌套的结构,包含城市、州和邮编。
YAML 的主要用途是作为配置文件格式,用于在应用程序中配置参数和选项。例如,在 Python 中可以使用 PyYAML 库来解析和生成 YAML 文件:
python
Copy
import yaml
读取 YAML 文件
with open('config.yaml', 'r') as f:
config = yaml.safe_load(f)
输出配置参数
print(config['name'])
print(config['age'])
print(config['address']['city'])
写入 YAML 文件
config['age'] = 31
with open('config.yaml', 'w') as f:
yaml.dump(config, f)
上面的代码使用 PyYAML 库读取和写入 YAML 文件,并输出配置参数。通过修改配置参数并写入文件,可以动态地修改应用程序的行为。
-
-
可以应用于多种场景,以下是一些常见的应用场景:
配置文件:YAML 可以用于编写应用程序的配置文件,包括常规的配置参数、环境变量、日志设置、数据库连接等。
数据交换:YAML 可以用于数据交换格式,例如将数据从一个应用程序传输到另一个应用程序,或者将数据从一个编程语言转换为另一个编程语言。
模板引擎:YAML 可以用于编写模板引擎,例如通过 YAML 文件定义网站的布局和样式。
测试数据:YAML 可以用于编写测试数据,例如在测试用例中使用 YAML 文件定义输入和期望输出。
文档格式:YAML 可以用于编写文档格式,例如 Markdown 文档。
-
-
YAML 语法使用冒号和缩进来表示层次结构,以下是一些常用的 YAML 关键字:
字符串:使用单引号(')或双引号(")将字符串括起来,例如:
Copy
name: 'John'
age: "30"
列表:使用短横线(-)表示列表,例如:
Copy
fruits:
- apple
- banana
- orange
对象:使用冒号(:)表示键值对,例如:
Copy
address:
city: New York
state: NY
zip: '10001'
空值:使用 ~ 表示空值,例如:
Copy
value: ~
引用:使用 & 和 表示引用,例如:
Copy
name: &name_ref John
age: 30
boss: name_ref
上面的 YAML 示例中,使用 &name_ref 定义了一个名为 name_ref 的引用,使用 *name_ref 表示引用,这样可以避免重复定义相同的值。
如果您想深入学习 YAML,可以参考以下资料:
YAML 官方网站:https://yaml.org/
YAML 规范文档:https://yaml.org/spec/
PyYAML 官方文档:https://pyyaml.org/wiki/PyYAMLDocumentation
YAML 快速入门教程:https://www.tutorialspoint.com/yaml/index.htm