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 文件相关推荐

  1. Python读取写入yaml文件

    一.yaml文件介绍 yaml是一个专门用来写配置文件的语言. 1. yaml文件规则 区分大小写: 使用缩进表示层级关系: 使用空格键缩进,而非Tab键缩进 缩进的空格数目不固定,只需要相同层级的元 ...

  2. python读文件代码-Python读取表格类型文件代码实例

    这篇文章主要介绍了Python读取表格类型文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 resp = My_Request_ ...

  3. python读取Excel表格文件

    python读取Excel表格文件,例如获取这个文件的数据 python读取Excel表格文件,需要如下步骤: 1.安装Excel读取数据的库-----xlrd 直接pip install xlrd安 ...

  4. python怎么读取sav格式_利用Python读取外部数据文件

    利用Python读取外部数据文件 [color=rgb(0, 0, 0) !important]刘顺祥 [color=rgb(0, 0, 0) !important]摘要: 不论是数据分析,数据可视化 ...

  5. python 保存csv,Python数据存储到文件的3种方式

    原标题:Python数据存储到文件的3种方式 爬虫请求解析后的数据,需要保存下来,才能进行下一步的处理,一般保存数据的方式有如下几种: 文件:txt.csv.excel.json等,保存数据量小. 关 ...

  6. python用os.system打开wav文件_使用python读取wav格式文件

    ** 使用python读取wav格式文件 ** - 基本概念 [采样频率] 即取样频率, 指每秒钟取得声音样本的次数.采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时它占的资源比较多.由 ...

  7. 如何在Python中解析YAML文件

    如何在Python中解析YAML文件? #1楼 不依赖C标头的最简单,最纯净的方法是PyYaml( 文档 ): #!/usr/bin/env pythonimport yamlwith open(&q ...

  8. 教大家python读取一行一行文件内容的方法

    Python中readline()每次读取文件中的一行,需要使用永真表达式循环读取文件.但当文件指针移动到文件的末尾时,依然使用readline()读取文件将出现错误.因此程序中需要添加1个判断语句, ...

  9. python读取.nii.gz文件并展示医学图片

    python读取.nii.gz文件并展示医学图片 注意细节 我的数据集格式 展示图片 补充 注意细节 第一次做医学图像相关的内容,拿到数据集却不会用,搞了半天终于可以打开显示了,必须写一个给跟我一样的 ...

  10. python获取的html转换为json,python读取XML格式文件并转为json格式

    XML文件如下: 红楼梦书名> 曹雪芹作者> 描述贾宝玉和林黛玉的爱情故事主要内容> 人民文学出版社出版社> 图书> 一.python读取XML格式文件代码: impor ...

最新文章

  1. Redis 概念以及底层数据结构
  2. ExtJs6 理解 -- Ext.data.proxy.Proxy
  3. SpringBoot 中 @RequestBody的正确使用方法
  4. Light bulbs(上海icpc网络预选赛,差分离散化)
  5. Android动画定义知识小结
  6. 计算机与工程建设项目结合,工程建设项目中计算机科学与技术的应用分析.doc...
  7. Learn OpenGL(四)——片段着色器(Fragment Shader)
  8. java环境变量 的配置与详解(全网最详细教程)
  9. 手机app测试用例怎么写?手机app测试点有哪些?
  10. linux系统下王者荣耀,一日一歌一Linux之一:CentOS 8.1 王者荣耀
  11. Tomcat WBE 服务器详细配置
  12. 关于EFM32下的w25q256的使用
  13. python调用sqlldr_sqlldr用法
  14. 2018 考研 408 经验贴——复试
  15. 开放IPTV论坛(OIPF)的HBB TV标准规范
  16. 中继器做表格--普通表格
  17. 人体工学电脑椅选购建议 | 潘魏增
  18. 从免费共享经济到知识付费系统,都是如何抓住时代风口的
  19. 如何报考系统集成项目管理工程师?
  20. Linux-tab键应用

热门文章

  1. 【欧洲AI复兴】马克龙:法国AI要赶美超中!
  2. Android将应用log信息保存文件
  3. centos5编译内核
  4. 打靶(递归算法) | 八皇后(回溯算法)
  5. Subway Pursuit (二分)(交互题)
  6. 陈梓涵:关于编程的胡扯
  7. Android xUtils3.0使用手册(二) - 数据库操作
  8. 源码编译安装screen
  9. OkHttp–支持SPDY协议的高效HTTP库
  10. 怎样区分现代艺术和幼儿涂鸦