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中字符编码简介、方法及使用建议
Jan 08 Python
在Python中用get()方法获取字典键值的教程
May 21 Python
Python两个内置函数 locals 和globals(学习笔记)
Aug 28 Python
python生成带有表格的图片实例
Feb 03 Python
利用Python实现微信找房机器人实例教程
Mar 10 Python
详解Python 调用C# dll库最简方法
Jun 20 Python
python之拟合的实现
Jul 19 Python
查看Python依赖包及其版本号信息的方法
Aug 13 Python
Ubuntu16.04安装python3.6.5步骤详解
Jan 10 Python
用python爬虫批量下载pdf的实现
Dec 01 Python
matplotlib 范围选区(SpanSelector)的使用
Feb 24 Python
单身狗福利?Python爬取某婚恋网征婚数据
Jun 03 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
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
laravel框架中间件 except 和 only 的用法示例
2019/07/12 PHP
javascript下查找父节点的简单方法
2007/08/13 Javascript
javascript removeChild 使用注意事项
2009/04/11 Javascript
Aptana调试javascript图解教程
2009/11/30 Javascript
js里的prototype使用示例
2010/11/19 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
2013/04/24 Javascript
客户端js判断文件类型和文件大小即限制上传大小
2013/11/20 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
探寻Javascript执行效率问题
2014/11/12 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
2015/06/11 Javascript
jQuery获取checkbox选中的值
2016/01/28 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
如何在Angular.JS中接收并下载PDF
2016/11/26 Javascript
解决Js先触发失去焦点事件再执行点击事件的问题
2018/08/30 Javascript
一文快速了解JQuery中的AJAX
2019/05/31 jQuery
flexible.js实现移动端rem适配方案
2020/04/07 Javascript
在Windows8上的搭建Python和Django环境
2014/07/03 Python
Python函数式编程指南(二):从函数开始
2015/06/24 Python
Python之pandas读写文件乱码的解决方法
2018/04/20 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
2020/01/13 Python
pytorch方法测试详解——归一化(BatchNorm2d)
2020/01/15 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
怎么快速自学python
2020/06/22 Python
华为python面试题
2016/05/03 面试题
《罗布泊,消逝的仙湖》教学反思
2014/03/01 职场文书
卫生巾广告词
2014/03/18 职场文书
员工薪酬激励方案
2014/06/13 职场文书
设计专业自荐信
2014/06/19 职场文书
高一军训感想
2015/08/07 职场文书
2019年教师入党申请书
2019/06/27 职场文书
MySQL完整性约束的定义与实例教程
2021/05/30 MySQL