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进程的信号通讯
Apr 09 Python
在Django框架中运行Python应用全攻略
Jul 17 Python
详解Python3中的Sequence type的使用
Aug 01 Python
Python中生成Epoch的方法
Apr 26 Python
linux下python使用sendmail发送邮件
May 22 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
Jan 30 Python
Python实现爬取马云的微博功能示例
Feb 16 Python
python数组循环处理方法
Aug 26 Python
python实现将列表中各个值快速赋值给多个变量
Apr 02 Python
python 瀑布线指标编写实例
Jun 03 Python
详解使用scrapy进行模拟登陆三种方式
Feb 21 Python
Python数据清洗工具之Numpy的基本操作
Apr 22 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
我的论坛源代码(一)
2006/10/09 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
php进行支付宝开发中return_url和notify_url的区别分析
2014/12/22 PHP
php将csv文件导入到mysql数据库的方法
2014/12/24 PHP
php计算2个日期的差值函数分享
2015/02/02 PHP
WordPress主题制作之模板文件的引入方法
2015/12/28 PHP
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
jQuery实现按键盘方向键翻页特效
2015/03/18 Javascript
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
SublimeText自带格式化代码功能之reindent
2015/12/27 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
2016/12/30 Javascript
jQuery实现动态文字搜索功能
2017/01/05 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
使用canvas进行图像编辑的实例
2017/08/29 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
Node.js使用Angular简单示例
2018/05/11 Javascript
Python3安装Pymongo详细步骤
2017/05/26 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
Python学习笔记之Zip和Enumerate用法实例分析
2019/08/14 Python
python基础 range的用法解析
2019/08/23 Python
python os.path.isfile()因参数问题判断错误的解决
2019/11/29 Python
python基于celery实现异步任务周期任务定时任务
2019/12/30 Python
详解CSS3新增的背景属性
2019/12/25 HTML / CSS
Html5实现用户注册自动校验功能实例代码
2016/05/24 HTML / CSS
HTML5为输入框添加语音输入功能的实现方法
2017/02/06 HTML / CSS
HTML利用九宫格原理进行网页布局
2020/03/13 HTML / CSS
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
大专生工程监理求职信
2013/10/04 职场文书
四风问题对照检查材料整改措施
2014/09/27 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
全民创业工作总结
2015/08/13 职场文书
公司团队口号霸气押韵
2015/12/24 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python
JS数组方法some、every和find的使用详情
2021/10/05 Javascript