首先了解一下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的形式去取值了。