-
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