Python 读取/存储 yaml 文件
YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)。
YAML 的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲(例如:许多电子邮件标题格式和YAML非常接近)。
基本语法
大小写敏感
使用缩进表示层级关系
缩进不允许使用tab,只允许空格
缩进的空格数不重要,只要相同层级的元素左对齐即可
'#'表示注释
数据类型
YAML 支持以下几种数据类型:对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
纯量(scalars):单个的、不可再分的值
关于yaml的简单介绍就到这里,今天需要用Python来读取/存储yml文件,废话补多少,直接看具体的操作:
#!usr/bin/env python
# encoding:utf-8
from __future__ import division"""
__Author__:沂水寒城
功能: yaml 操作
"""import sys
import yamldef write2Yaml(data, save_path="test.yaml"):"""存储yaml文件"""with open(save_path, "w") as f:yaml.dump(data, f)def loadData(data="config.yaml"):"""加载yaml文件"""with open(data, "r") as f:content = f.read()yamlData = yaml.load(content)print("yamlData_type: ", type(yamlData))print("yamlData: ", yamlData)return yamlDataif __name__ == "__main__":data = {"kind": "SeldonDeployment","spec": {"name": "test-deployment","predictors": [{"graph": {"endpoint": {"type": "REST"},"type": "MODEL","name": "step_one","children": {"endpoint": {"type": "REST"},"type": "MODEL","name": "step_two","children": {"endpoint": {"type": "REST"},"type": "MODEL","name": "step_three","children": [],},},},"componentSpecs": [{"spec": {"containers": [{"image": "seldonio/step_one:1.0","name": "step_one",},{"image": "seldonio/step_two:1.0","name": "step_two",},{"image": "seldonio/step_three:1.0","name": "step_three",},]}}],"name": "example","replicas": 1,}],},"apiVersion": "machinelearning.seldon.io/v1alpha2","metadata": {"name": "seldon-model"},}write2Yaml(data, save_path="test.yaml")yamlData = loadData(data="test.yaml")print(yamlData == data)
上述测试用的test.yaml文件如下:
apiVersion: machinelearning.seldon.io/v1alpha2
kind: SeldonDeployment
metadata:name: seldon-model
spec:name: test-deploymentpredictors:- componentSpecs:- spec:containers:- image: seldonio/step_one:1.0name: step_one- image: seldonio/step_two:1.0name: step_two- image: seldonio/step_three:1.0name: step_threegraph:children:children:children: []endpoint:type: RESTname: step_threetype: MODELendpoint:type: RESTname: step_twotype: MODELendpoint:type: RESTname: step_onetype: MODELname: examplereplicas: 1
在上述代码中可以看到我操作的yaml文件后缀都写的是yaml,其实写成yml也是可以的。如下所示:
Python 读取/存储 yaml 文件相关推荐
- Python读取写入yaml文件
一.yaml文件介绍 yaml是一个专门用来写配置文件的语言. 1. yaml文件规则 区分大小写: 使用缩进表示层级关系: 使用空格键缩进,而非Tab键缩进 缩进的空格数目不固定,只需要相同层级的元 ...
- python读文件代码-Python读取表格类型文件代码实例
这篇文章主要介绍了Python读取表格类型文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 resp = My_Request_ ...
- python读取Excel表格文件
python读取Excel表格文件,例如获取这个文件的数据 python读取Excel表格文件,需要如下步骤: 1.安装Excel读取数据的库-----xlrd 直接pip install xlrd安 ...
- python怎么读取sav格式_利用Python读取外部数据文件
利用Python读取外部数据文件 [color=rgb(0, 0, 0) !important]刘顺祥 [color=rgb(0, 0, 0) !important]摘要: 不论是数据分析,数据可视化 ...
- python 保存csv,Python数据存储到文件的3种方式
原标题:Python数据存储到文件的3种方式 爬虫请求解析后的数据,需要保存下来,才能进行下一步的处理,一般保存数据的方式有如下几种: 文件:txt.csv.excel.json等,保存数据量小. 关 ...
- python用os.system打开wav文件_使用python读取wav格式文件
** 使用python读取wav格式文件 ** - 基本概念 [采样频率] 即取样频率, 指每秒钟取得声音样本的次数.采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时它占的资源比较多.由 ...
- 如何在Python中解析YAML文件
如何在Python中解析YAML文件? #1楼 不依赖C标头的最简单,最纯净的方法是PyYaml( 文档 ): #!/usr/bin/env pythonimport yamlwith open(&q ...
- 教大家python读取一行一行文件内容的方法
Python中readline()每次读取文件中的一行,需要使用永真表达式循环读取文件.但当文件指针移动到文件的末尾时,依然使用readline()读取文件将出现错误.因此程序中需要添加1个判断语句, ...
- python读取.nii.gz文件并展示医学图片
python读取.nii.gz文件并展示医学图片 注意细节 我的数据集格式 展示图片 补充 注意细节 第一次做医学图像相关的内容,拿到数据集却不会用,搞了半天终于可以打开显示了,必须写一个给跟我一样的 ...
- python获取的html转换为json,python读取XML格式文件并转为json格式
XML文件如下: 红楼梦书名> 曹雪芹作者> 描述贾宝玉和林黛玉的爱情故事主要内容> 人民文学出版社出版社> 图书> 一.python读取XML格式文件代码: impor ...
最新文章
- Redis 概念以及底层数据结构
- ExtJs6 理解 -- Ext.data.proxy.Proxy
- SpringBoot 中 @RequestBody的正确使用方法
- Light bulbs(上海icpc网络预选赛,差分离散化)
- Android动画定义知识小结
- 计算机与工程建设项目结合,工程建设项目中计算机科学与技术的应用分析.doc...
- Learn OpenGL(四)——片段着色器(Fragment Shader)
- java环境变量 的配置与详解(全网最详细教程)
- 手机app测试用例怎么写?手机app测试点有哪些?
- linux系统下王者荣耀,一日一歌一Linux之一:CentOS 8.1 王者荣耀
- Tomcat WBE 服务器详细配置
- 关于EFM32下的w25q256的使用
- python调用sqlldr_sqlldr用法
- 2018 考研 408 经验贴——复试
- 开放IPTV论坛(OIPF)的HBB TV标准规范
- 中继器做表格--普通表格
- 人体工学电脑椅选购建议 | 潘魏增
- 从免费共享经济到知识付费系统,都是如何抓住时代风口的
- 如何报考系统集成项目管理工程师?
- Linux-tab键应用