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中if __name__ == &quot;__main__&quot;详细解释
Oct 21 Python
利用Python实现命令行版的火车票查看器
Aug 05 Python
python实现kMeans算法
Dec 21 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
Django Rest framework之认证的实现代码
Dec 17 Python
python3去掉string中的标点符号方法
Jan 22 Python
python3+PyQt5 数据库编程--增删改实例
Jun 17 Python
pywinauto自动化操作记事本
Aug 26 Python
Pytorch之finetune使用详解
Jan 18 Python
浅谈python3 构造函数和析构函数
Mar 12 Python
python使用建议与技巧分享(二)
Aug 17 Python
进行数据处理的6个 Python 代码块分享
Apr 06 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抓取页面与代码解析 推荐
2010/07/23 PHP
PHP日期处理函数 整型日期格式
2011/01/12 PHP
input file获得文件根目录简单实现
2013/04/26 PHP
深入php数据采集的详解
2013/06/02 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
微信公众平台DEMO(PHP)
2016/05/04 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
2016/05/16 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
2018/04/12 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
限制textbox或textarea输入字符长度的JS代码
2013/10/16 Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
2014/01/02 Javascript
删除条目时弹出的确认对话框
2014/06/05 Javascript
jquery常用方法及使用示例汇总
2014/11/08 Javascript
深入理解JavaScript系列(47):对象创建模式(上篇)
2015/03/04 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
2015/11/03 Javascript
jQuery简单获取键盘事件的方法
2016/01/22 Javascript
JS+HTML5 FileReader对象用法示例
2017/04/07 Javascript
Angular实现下载安装包的功能代码分享
2017/09/05 Javascript
vue项目前端错误收集之sentry教程详解
2019/05/27 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
2020/08/14 Javascript
原生js生成图片验证码
2020/10/11 Javascript
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
Python 中的with关键字使用详解
2016/09/11 Python
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
浅谈Python基础—判断和循环
2019/03/22 Python
Python + selenium + crontab实现每日定时自动打卡功能
2020/03/31 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
秘书行业自我鉴定范文
2013/12/30 职场文书
2015元旦晚会主持词(开场白+结束语)
2014/12/14 职场文书
环保建议书作文300字
2015/09/14 职场文书
教你修复 Win11应用商店加载空白问题
2021/12/06 数码科技
Mysql中mvcc各场景理解应用
2022/08/05 MySQL