Yaml简述及文件读写
Posted 写Bug的徐同学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yaml简述及文件读写相关的知识,希望对你有一定的参考价值。
语法规则
- 大小写敏感
- 使用缩进表示层级关系
- 缩进时不允许使用 Tab 键,只允许使用空格
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
支持的数据结构
- 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
- 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
- 纯量(scalars):单个的、不可再分的值
- 字符串
- 布尔值
- 整数
- 浮点数
- None(Null/null/~)
- 日期datetime(2021-01-01)
锚点和引用
- 锚点&:标注一个内容,锚点名称自定义
- 引用*:使用被标注的内容<<: *锚点名
Yaml文件示例
---
# page1
login: &md
- id
- 'test'
out:
- css
- None
- *md
---
# page2
login:
- css
- '9'
Yaml 文件读取
#!/usr/bin/python3
# _*_coding=utf-8 _*_
# @author junwei
import yaml
def read_yaml(file_path='./yaml.yaml', page_num=0):
"""
读取yaml文件(多页面)
:param file_path:
:param page_num: yaml中第几个页面的元素(从0开始)
:return:指定页的数据
"""
result = []
file = open(file_path, encoding='utf-8')
# 返回结果为一个生成器
obj = yaml.load_all(file, Loader=yaml.FullLoader)
for i in obj:
result.append(i)
return result[page_num]
def yaml_write(data, file_path='./yaml.yaml', mode='w'):
"""
写入yaml文件
:param file_path:
:param data:
:param mode:
:return:
"""
with open("%s" % file_path, "%s" % mode) as f:
yaml.dump(data, f, encoding='utf-8', allow_unicode=True)
if __name__ == '__main__':
data = {'Search_Data': {
'search_test_002': {'expect': {'value': 'a'}, 'value': 'b'},
'search_test_001': {'expect': [4, 5, 6], 'value': 456}}}
yaml_write(data, 'a')
以上是关于Yaml简述及文件读写的主要内容,如果未能解决你的问题,请参考以下文章