1. 程式人生 > 其它 >Python 常用第三方庫 yaml

Python 常用第三方庫 yaml

YAML

  • 一種資料序列化格式
  • 用於人類的可讀性和與指令碼語言的互動
  • 一種被認為可以超越 XML、JSON 的配置檔案

YAML 基本語法規則

  • 大小寫敏感
  • 使用縮排表示層級關係
  • 縮排時不允許使用 Tab 鍵,只允許使用空格
  • 縮排的空格數目不重要,只要相同層級的元素左側對齊即可
  • # 表示註釋,從這個字元一直到行尾,都會被解析器忽略

YAML 支援的資料結構

  • 物件:鍵值對的集合,用冒號 “:” 表示
  • 陣列:一組按次序排列的值,前加 “-”
  • 純量:單個的、不可再分的值
    • 字串
    • 布林值
    • 整數
    • 浮點數
    • Null
    • 時間
    • 日期
# 程式語言
languages:
  - PHP
  - Java
  - Python 
book:
  Python入門: # 書籍名稱
    price: 55.5
    author: Lily
    available: True
    repertory: 20
    date: 2018-02-17
  Java入門:
    price: 60
    author: Lily
    available: False
    repertory: Null
    date: 2018-05-11

PyYAML

  • Python 的 YAML 解析器和生成器
  • 官網:https://pypi.org/project/PyYAML/

安裝:pip install pyyaml

建立 yaml 檔案

import yaml

data = {
    "client": {"default-character-set": "utf8"},
    "mysql": {"user": 'root', "password": 123},
    "custom": {
        "user1": {"user": "張三", "pwd": 666},
        "user2": {"user": "李四", "pwd": 999},
    }
}
# 直接 dump 可以把物件轉為 YAML 文件
with open('./my.yaml', 'w', encoding='utf-8') as f:
    yaml.dump(data, f, allow_unicode=True)

讀取 yaml 檔案

import yaml

file_path = './my.yaml'

with open(file_path, 'r', encoding='utf-8') as f:
    data = yaml.safe_load(f)
print(data)