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的Django框架测试驱动开发的教程
Apr 22 Python
Python中map,reduce,filter和sorted函数的使用方法
Aug 17 Python
python将unicode转为str的方法
Jun 21 Python
python统计多维数组的行数和列数实例
Jun 23 Python
Linux下python与C++使用dlib实现人脸检测
Jun 29 Python
详解Django将秒转换为xx天xx时xx分
Sep 27 Python
Python模块_PyLibTiff读取tif文件的实例
Jan 13 Python
Python xlrd/xlwt 创建excel文件及常用操作
Sep 24 Python
Python机器学习工具scikit-learn的使用笔记
Jan 28 Python
在Pycharm中安装Pandas库方法(简单易懂)
Feb 20 Python
pytorch通过训练结果的复现设置随机种子
Jun 01 Python
Python几种酷炫的进度条的方式
Apr 11 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模拟SQL Server的两个日期处理函数
2006/10/09 PHP
跟我学Laravel之请求与输入
2014/10/15 PHP
如何写php守护进程(Daemon)
2015/12/30 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
2017/02/15 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
PHP7多线程搭建教程
2017/04/21 PHP
详解PHP版本兼容之openssl调用参数
2018/07/25 PHP
PHP实现数组根据某个单元字段排序操作示例
2018/08/01 PHP
学习js所必须要知道的一些
2007/03/07 Javascript
JS 中document.URL 和 windows.location.href 的区别
2009/11/11 Javascript
javascript中的array数组使用技巧
2010/01/31 Javascript
Jquery submit()无法提交问题
2013/04/21 Javascript
js定时调用方法成功后并停止调用示例
2014/04/08 Javascript
js实现回放拖拽轨迹从过程上进行分析
2014/06/26 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
2014/09/22 Javascript
浅析Node.js的Stream模块中的Readable对象
2015/07/29 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
2016/10/11 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
Javascript ES6中数据类型Symbol的使用详解
2017/05/02 Javascript
vue.js 实现评价五角星组件的实例代码
2018/08/13 Javascript
解决JS表单验证只有第一个IF起作用的问题
2018/12/04 Javascript
js中Array对象的常用遍历方法详解
2019/01/17 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
2020/12/30 jQuery
Python搭建Spark分布式集群环境
2019/07/05 Python
python递归下载文件夹下所有文件
2019/08/31 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
浅谈Python 参数与变量
2020/06/20 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
2021/03/03 Python
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
毕业生就业推荐信范文
2013/12/01 职场文书
管理失职检讨书范文
2015/05/05 职场文书
上诉答辩状范文
2015/05/22 职场文书
2016年小学六一儿童节活动总结
2016/04/06 职场文书
Django展示可视化图表的多种方式
2021/04/08 Python