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里将list中元素依次向前移动一位
Sep 12 Python
Python实现短网址ShortUrl的Hash运算实例讲解
Aug 10 Python
Python获取SQLite查询结果表列名的方法
Jun 21 Python
利用python批量修改word文件名的方法示例
Oct 17 Python
python编程之requests在网络请求中添加cookies参数方法详解
Oct 25 Python
Python常用爬虫代码总结方便查询
Feb 25 Python
浅谈Python爬虫基本套路
Mar 25 Python
python的几种矩阵相乘的公式详解
Jul 10 Python
浅析PyTorch中nn.Module的使用
Aug 18 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
Mar 30 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
Apr 24 Python
python性能测试工具locust的使用
Dec 28 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
PHP4实际应用经验篇(2)
2006/10/09 PHP
php eval函数用法总结
2012/10/31 PHP
php对文件进行hash运算的方法
2015/04/03 PHP
详细解读PHP中接口的应用
2015/08/12 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
2016/05/20 PHP
浅谈PHP中的数据传输CURL
2016/09/06 PHP
php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
2016/11/09 PHP
Yii2数据库操作常用方法小结
2017/05/04 PHP
PHP回调函数简单用法示例
2019/05/08 PHP
原生JS操作网页给p元素添加onclick事件及表格隔行变色
2013/12/01 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
2014/11/24 Javascript
jQuery实现跨域iframe接口方法调用
2015/03/14 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
2016/09/20 Javascript
使用travis-ci如何持续部署node.js应用详解
2017/07/30 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
解决vue组件props传值对象获取不到的问题
2019/06/06 Javascript
pyqt4教程之实现半透明的天气预报界面示例
2014/03/02 Python
仅利用30行Python代码来展示X算法
2015/04/01 Python
Python中矩阵库Numpy基本操作详解
2017/11/21 Python
python实现flappy bird游戏
2018/12/24 Python
jupyter实现重新加载模块
2020/04/16 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
美国林业供应商:Forestry Suppliers
2019/05/01 全球购物
本科应届生自荐信
2014/06/29 职场文书
应届生面试求职信
2014/07/02 职场文书
小学标准化建设汇报材料
2014/08/16 职场文书
四风自我剖析材料
2014/09/30 职场文书
2014年环保工作总结
2014/11/26 职场文书
合理化建议书
2015/02/04 职场文书
2015年语文教学工作总结
2015/05/25 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
小组组名及励志口号
2015/12/24 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书
导游词之昭君岛
2020/01/17 职场文书