YAML Cheatsheet - YAML Syntax Reference
把 YAML 最常用的语法整理成速查表,写配置文件时对照查。
Back to Config Formats基础语法 Basic Syntax 8
key: value键值对(冒号后必须有空格)
# 注释单行注释
---文档分隔符(多文档用)
...文档结束符
string字符串(默认不需要引号)
"string" / 'string'双引号(支持转义)/ 单引号(不转义)
key: "value: with colon"值含特殊字符(: # 等)需加引号
key with spaces: value键名可含空格(无需引号)
数据类型 Data Types 8
null / ~空值
true / false布尔值
123 / 0x1A / 0o17 / 0b1010整数(十进制/十六/八/二进制)
3.14 / .inf / -.inf / .nan浮点数(无穷大/NaN)
2026-07-19日期(ISO 8601)
2026-07-19T10:30:00Z日期时间(UTC)
2026-07-19T10:30:00+08:00带时区的日期时间
!!binary "aGVsbG8="二进制数据(base64 编码)
列表 List / Array 6
- item1\n- item2块风格列表
[item1, item2]流风格列表(行内)
fruits:\n - apple\n - banana嵌套列表
items: []空列表
matrix:\n - [1, 2]\n - [3, 4]列表中的列表
users:\n -\n name: tom\n age: 20列表中放字典
字典 Dictionary / Object 6
key1: value1\nkey2: value2块风格字典
{key1: value1, key2: value2}流风格字典(行内)
person:\n name: tom\n age: 20嵌套字典
person: {name: tom, age: 20}流风格嵌套字典
config: {}空字典
server:\n host: localhost\n ports:\n - 80\n - 443字典与列表混合嵌套
多行字符串 Multiline String 7
text: |\n line1\n line2保留换行(Literal 标量)
text: >\n line1\n line2折叠换行为空格(Folded 标量)
text: "line1\nline2"双引号内显式换行
text: |-\n line1\n line2保留换行并去除末尾换行(- chomp)
text: |+\n line1\n line2保留换行并保留末尾空行(+ chomp)
text: |2\n line1\n line2指定缩进指示数字(2 个空格)
text: >-\n line1\n line2折叠换行并去除末尾换行
锚点与引用 Anchor & Alias 6
default: &default\n key: value定义锚点(&)
env: *default引用锚点(*)
env:\n <<: *default\n extra: value合并锚点到当前字典(<<)
list: &list [a, b, c]为列表定义锚点
copy: *list引用列表锚点
config:\n <<: [*base, *override]合并多个锚点(后者覆盖前者)
类型强制转换 Type Conversion 8
key: !!str 123将整数转为字符串 "123"
key: !!int "42"将字符串转为整数 42
key: !!float "3.14"将字符串转为浮点数
key: !!bool "yes"将字符串转为布尔值
key: !!timestamp "2026-07-19"将字符串转为时间戳
key: !!null ""将空字符串转为 null
key: !!seq {}显式声明为序列类型
key: !!map []显式声明为映射类型
实用示例 Real-world Examples 5
services:\n web:\n image: nginx:latest\n ports:\n - "80:80"Docker Compose 服务定义
steps:\n - name: Checkout\n uses: actions/checkout@v4GitHub Actions 步骤
apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: my-appKubernetes 资源定义
---\ntitle: My Post\ndate: 2026-07-19\n---Front Matter(文章元信息)
env:\n DATABASE_URL: postgres://localhost/mydb环境变量配置
💡 Tips
- YAML 对缩进敏感,必须用空格不能用 Tab,同一层级必须对齐。
- 冒号后必须有空格(key: value),否则会被解析为字符串。
- 多行字符串用 | 保留换行,用 > 折叠换行(适合长段落)。
- 字符串含特殊字符(: # @ ` 等)时需加引号,避免解析歧义。
- 锚点 & 定义、别名 * 引用、<< 合并键可减少重复配置。
- 多文档用 --- 分隔,常见于 Front Matter 和 CI/CD 配置。