使用 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