-
StackOverflow 文档
-
yaml 教程
-
使用锚点和别名来转换内容
-
使用 YAML 锚点创建一个 Dictionaries 数组表作为行标识符
---
person_table:
- &person001
fname: homer
lname: simpson
role: dad
age: 33
- &person002
fname: marge
lname: simpson
role: mom
age: 34
- &person003
fname: peter
lname: griffin
role: dad
age: 34
问题
- 开发人员希望在 YAML 中表达一个表结构,其中每一行都由一个紧凑的行标识符引用
解
- 使用 YAML 锚点,通过为表中的每一行分配锚点标识符
- 在 YAML 中,可重用的“transclusion 标识符”称为锚点和别名
- 在 YAML 中,可重复使用的“transclusion 标识符”由字母数字标记组成,前面带有&符号或星号
合理
- YAML 锚点和别名允许增加数据规范化
- YAML 锚点和别名强制执行
DRY
(不要重复自己)
- 在这个例子中,可以设计和保存一个与数据库紧密相符的表结构
陷阱
- 必须先声明 YAML 锚点,然后才能通过别名引用它们
- YAML 锚点在整个文档中必须是唯一的
- 未能指定唯一锚点将导致
yaml.load()
出错
- 并非所有 YAML 解析器都可靠地支持锚点和别名
也可以看看
Stackoverflow YAML