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)}


posted @ 2022-05-25 16:27  森西子  阅读(918)  评论(0编辑  收藏  举报