1. 程式人生 > 其它 >python-yaml檔案寫法和使用

python-yaml檔案寫法和使用

yaml簡介

yaml 是專門用來寫配置檔案的語言

yaml檔案其實也是一種配置檔案型別,字尾名是.yaml或.yml都可以

個人認為比yaml比json格式更方便

yaml語法規則

  • 大小寫敏感
  • 使用縮排表示層級關係(不能用Tab,只能用空格)
  • 相同層級的元素左對齊
  • #號表示單行註釋
  • 字串可以不用引號標註

安裝yaml庫

cmd執行pip install pyyaml

裝的時候要用pyyaml,實際使用時直接import yaml即可

例項

  • 列表

短橫線加一個空格(- )

#test_列表.yaml
- 10
- 20
- 30
#test.py
import yaml
with open('test_列表.yaml',encoding='utf-8') as file1:
    data = yaml.load(file1,Loader=yaml.FullLoader)#讀取yaml檔案
    print(data)
>>>
[10, 20, 30]
  
  • 字典 用冒號加空格連線鍵和值(: )
#test_字典.yaml
name: 吳彥祖
age: 20
#test.py
import yaml
with open('test_字典.yaml',encoding='utf-8') as file1:
    data = yaml.load(file1,Loader=yaml.FullLoader)#讀取yaml檔案
    print(data)
>>>
{'name': '吳彥祖', 'age': 20}
  • 列表中的字典
#test_列表中的字典.yaml
-
 name: 吳彥祖
 age: 21
-
 A: apple
#test.py
import yaml
with open('test_列表中的字典.yaml',encoding='utf-8') as file1:
    data = yaml.load(file1,Loader=yaml.FullLoader)#讀取yaml檔案
    print(data)
>>>
[{'name': '吳彥祖', 'age': 21}, {'A': 'apple'}]
  • 字典中的字典
#test_字典中的字典.yaml
name: 
 name1: 吳彥祖
#test.py
import yaml
with open('test_字典中的字典.yaml',encoding='utf-8') as file1:
    data = yaml.load(file1,Loader=yaml.FullLoader)#讀取yaml檔案
    print(data)
>>>
{'name': {'name1': '吳彥祖'}}
  • 字典中的列表
#test_字典中的列表.yaml
name:
 - 吳彥祖
 - 周星馳
 - uzi
age: 20
#test.py
import yaml
with open('test_字典中的列表.yaml',encoding='utf-8') as file1:
    data = yaml.load(file1,Loader=yaml.FullLoader)#讀取yaml檔案
    print(data)
>>>
{'name': ['吳彥祖', '周星馳', 'uzi'], 'age': 20}
  • 多組資料

當一個yaml檔案內有多組資料時,用三個-分隔, 讀取時使用yaml.load_all

例如同時有列表和字典:

#test_多組資料.yaml
- 10
- 20
- 30
---
name: 吳彥祖
age: 20
#test.py
import yaml
with open('test_多組資料.yaml',encoding='utf-8') as file1:
    data = yaml.load_all(file1,Loader=yaml.FullLoader)#讀取yaml檔案
    for i in data:
        print(i)
>>>
[10, 20, 30]
{'name': '吳彥祖', 'age': 20}
  • 元組寫法(不常用,做了解)
key1: !!python/tuple [10, 20]
>>>
{'key1': (10, 20)}