首先了解一下yaml最基礎、最常用的語法
- 大小寫敏感
- 使用縮進代表層級關系
- 縮進只能用空格,不能使用Tab
- 不要求空格個數,只要相同層級左對齊
- 冒號后面需要輸入一個空格,再輸入值
- 字符串默認不使用引號表示,也可以用單引號或雙引號,雙引號不會對特殊字符進行轉義
s1: '內容\n字符串' s2: "內容\n字符串"
- 單引號之中如果還有單引號,必須連續使用兩個單引號轉義
str: 'labor''s day'
map嵌套map(字典)
# YAML表示 websites: YAML: yaml.org Ruby: ruby-lang.org Python: python.org Perl: use.perl.org # 對應Json表示 { websites: { YAML: 'yaml.org', Ruby: 'ruby-lang.org', Python: 'python.org', Perl: 'use.perl.org' } }
map嵌套list(列表)
# YAML表示 languages: - Ruby - Perl - Python - c # 對應Json表示 { languages: [ 'Ruby', 'Perl', 'Python', 'c' ] }
list嵌套list
# YAML表示 - - Ruby - Perl - Python - - c - c++ - java # 對應Json表示 [ [ 'Ruby', 'Perl', 'Python' ], [ 'c', 'c++', 'java' ] ] 除此以外,還可以如下表示該結構 # 方法2 - - Ruby - Perl - Python - - c - c++ - java # 方法3 - [Ruby,Perl,Python] - [c,c++,java]
list嵌套map
# YAML表示 - id: 1 name: huang - id: 2 name: liao # 對應Json表示 [ { id: 1, name: 'huang' }, { id: 2, name: 'liao' }
1、安裝yaml
pip install pyyaml
2、編寫一個py文件,讀取yaml文件,yaml文件需要通過load方法轉換成字典格式,然后再通過字典取值的方式獲得值
# -*- coding:utf-8 -*- import yaml import os # 獲取當前文件的RealPath F:\before\lds\pages fileNamePath = os.path.split(os.path.realpath(__file__))[0] # 獲取配置文件的路徑 F:\before\lds\pages\application-lds.yml yamlPath = os.path.join(fileNamePath, 'application-lds.yml') # 先讀取文件數據,再通過load方法轉成字典 with open(yamlPath, 'r', encoding='utf-8') as f: x = yaml.load(f, Loader=yaml.FullLoader) print(x['table']['self'])
load加載成字典形式后,就可以使用key-value的形式去取值了。