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中的浅复制与深复制
Jul 02 Python
在Python中的Django框架中进行字符串翻译
Jul 27 Python
Python使用ntplib库同步校准当地时间的方法
Jul 02 Python
用python制作游戏外挂
Jan 04 Python
python3读取excel文件只提取某些行某些列的值方法
Jul 10 Python
python创建学生成绩管理系统
Nov 22 Python
python2 对excel表格操作完整示例
Feb 23 Python
手把手教你安装Windows版本的Tensorflow
Mar 26 Python
Python3标准库之threading进程中管理并发操作方法
Mar 30 Python
简单了解pytest测试框架setup和tearDown
Apr 14 Python
基于Python爬虫采集天气网实时信息
Jun 05 Python
Python字典dict常用方法函数实例
Nov 09 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
BBS(php &amp; mysql)完整版(六)
2006/10/09 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
解析PHP中的unset究竟会不会释放内存
2013/07/18 PHP
7个鲜为人知却非常实用的PHP函数
2015/07/01 PHP
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
javascript全局变量封装模块实现代码
2012/11/28 Javascript
浅析JavaScript中的delete运算符
2013/11/30 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
2016/03/30 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
最全的Javascript编码规范(推荐)
2016/06/22 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
2016/12/05 Javascript
mui上拉加载功能实例详解
2017/04/13 Javascript
详解如何实现一个简单的 vuex
2018/02/10 Javascript
Vue中的作用域CSS和CSS模块的区别
2018/10/09 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
2018/10/31 Javascript
js实现无缝滚动双图切换效果
2019/07/09 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
2020/12/07 Vue.js
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python 中的with关键字使用详解
2016/09/11 Python
Python中函数及默认参数的定义与调用操作实例分析
2017/07/25 Python
Python实现图片滑动式验证识别方法
2017/11/09 Python
python使用PIL给图片添加文字生成海报示例
2018/08/17 Python
详解Scrapy Redis入门实战
2020/11/18 Python
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
2013/02/17 面试题
求职简历自荐信
2013/10/20 职场文书
汽车专业人才自我鉴定范文
2013/12/29 职场文书
给同学的道歉信
2014/01/16 职场文书
消防先进事迹材料
2014/02/10 职场文书
班长自荐书范文
2014/02/11 职场文书
《赶海》教学反思
2014/04/20 职场文书
班子成员四风问题自我剖析材料
2014/09/29 职场文书
2014年煤矿工作总结
2014/11/24 职场文书
2016全国“质量月”活动标语口号
2015/12/26 职场文书
Nginx配置Https安全认证的实现
2021/05/26 Servers
JavaWeb Servlet开发注册页面实例
2022/04/11 Java/Android
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
2022/04/20 Python