python-yaml檔案寫法和使用
阿新 • • 發佈:2022-05-25
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)}