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