Python使用pyyaml模块处理yaml数据


Posted in Python onApril 14, 2020

pyyaml模块在python中用于处理yaml格式数据,主要使用yaml.safe_dump()、yaml.safe_load()函数将python值和yaml格式数据相互转换。当然也存在yaml.dump()、yaml.load()函数,同样能实现数据转换功能,只是官方不太推荐使用。官方给出的解释,因为yaml.safe_dump()、yaml.safe_load() 能够:

Resolve only basic YAML tags. This is known to be safe for untrusted input.

如果想对一个yaml文件中的多块yaml数据进行转换操作,则可以使用yaml.safe_dump_all()、yaml.safe_load_all()函数。下面会说明yaml.safe_dump()、yaml.safe_load()、yaml.safe_dump_all()、yaml.safe_load_all()函数的用法。

yaml.safe_dump()

将一个python值转换为yaml格式文件,示例如下:

import yaml
dict_data = {'a': 1, 'b': 2}
with open('data.yaml', 'w', encoding='UTF-8') as yaml_file:
  yaml.safe_dump(dict_data, yaml_file)

如果上述yaml.dump()中不带第二个参数,则会返回一个类似yaml格式的字符串

import yaml
dict_data = {'a': 1, 'b': 2}
yaml_string = yaml.safe_dump(dict_data)
print(type(yaml_string))
print(yaml_string)

运行结果:

<class 'str'>
a: 1
b: 2

yaml.safe_load()

将yaml格式文件转换为python值,接第一例子,示例如下:

import yaml
with open('data.yaml', encoding='UTF-8') as yaml_file:
  data = yaml.safe_load(yaml_file)
print(type(data))
print(data)

运行结果:

<class 'dict'>
{'a': 1, 'b': 2}

yaml.safe_dump_all()

将一序列的python值转换为yaml格式文件,如果yaml.safe_dump_all()中不带第二个参数,则与yaml.dump()类似,会返回一个类似yaml格式的字符串

import yaml
dict_data1 = {'a': 1, 'b': 2}
dict_data2 = {'c': 3, 'd': 4}
yaml_string = yaml.safe_dump_all([dict_data1, dict_data2])
print(type(yaml_string))
print(yaml_string)

运行结果:

<class 'str'>
a: 1
b: 2
---
c: 3
d: 4

yaml.safe_load_all()

将yaml格式文件转换为python值,该yaml文件可以包含多块yaml数据,用法如下:

import yaml
with open('data.yaml', encoding='UTF-8') as yaml_file:
  data = yaml.safe_load_all(yaml_file)
  for item in data:
    print(item)

运行结果:

{'a': 1, 'b': 2}
{'c': 3, 'd': 4}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
May 06 Python
Python中isnumeric()方法的使用简介
May 19 Python
Python2.7简单连接与操作MySQL的方法
Apr 27 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
Nov 16 Python
安装python3的时候就是输入python3死活没有反应的解决方法
Jan 24 Python
在Python中实现shuffle给列表洗牌
Nov 08 Python
Python整数对象实现原理详解
Jul 01 Python
Python3的高阶函数map,reduce,filter的示例详解
Jul 23 Python
python中bytes和str类型的区别
Oct 21 Python
python绘制封闭多边形教程
Feb 18 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
Mar 20 Python
Python  序列化反序列化和异常处理的问题小结
Dec 24 Python
Jupyter Notebook打开任意文件夹操作
Apr 14 #Python
Python requests模块cookie实例解析
Apr 14 #Python
Python requests模块session代码实例
Apr 14 #Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
Apr 14 #Python
服务器端jupyter notebook映射到本地浏览器的操作
Apr 14 #Python
Jupyter Notebook输出矢量图实例
Apr 14 #Python
pygame实现弹球游戏
Apr 14 #Python
You might like
PHP内置的Math函数效率测试
2014/12/01 PHP
浅谈PHP命令执行php文件需要注意的问题
2016/12/16 PHP
PHPMailer发送邮件
2016/12/28 PHP
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
GRID拖拽行的实例代码
2013/07/18 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
javascript 动态创建表格
2015/01/08 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
2016/03/17 Javascript
Google 地图事件实例讲解
2016/08/06 Javascript
微信小程序 框架详解及实例应用
2016/09/26 Javascript
简单实现Bootstrap标签页
2020/08/09 Javascript
Bootstrap表单制作代码
2017/03/17 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
2019/09/03 Javascript
JQuery基于FormData异步提交数据文件
2020/09/01 jQuery
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
Python中对象迭代与反迭代的技巧总结
2016/09/17 Python
python用户管理系统
2018/03/13 Python
python 寻找list中最大元素对应的索引方法
2018/06/28 Python
python flask实现分页的示例代码
2018/08/02 Python
python3 selenium自动化测试 强大的CSS定位方法
2019/08/23 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
2019/10/12 Python
MxNet预训练模型到Pytorch模型的转换方式
2020/05/25 Python
python属于跨平台语言码
2020/06/09 Python
最经典的商业地产项目广告词
2014/03/13 职场文书
竞选学生会主席演讲稿
2014/04/24 职场文书
幼儿园优秀班主任事迹材料
2014/05/14 职场文书
中秋晚会活动方案
2014/08/31 职场文书
人事文员岗位职责
2015/02/04 职场文书
钱学森观后感
2015/06/04 职场文书
2015年语言文字工作总结
2015/07/23 职场文书
离婚起诉书范文2016
2015/11/26 职场文书
php修改word的实例方法
2021/11/17 PHP
详解CSS3浏览器兼容
2022/12/24 HTML / CSS