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之PyUnit单元测试实例
Oct 11 Python
Python中的__new__与__init__魔术方法理解笔记
Nov 08 Python
python通过post提交数据的方法
May 06 Python
给你选择Python语言实现机器学习算法的三大理由
Nov 15 Python
Python wxpython模块响应鼠标拖动事件操作示例
Aug 23 Python
Python3数字求和的实例
Feb 19 Python
Django异步任务之Celery的基本使用
Mar 23 Python
Django中ORM外键和表的关系详解
May 20 Python
使用pip安装python库的多种方式
Jul 31 Python
python scrapy爬虫代码及填坑
Aug 12 Python
Python数据持久化存储实现方法分析
Dec 21 Python
TensorFlow加载模型时出错的解决方式
Feb 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字符串截取的简单方法
2013/07/04 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
2015/03/26 PHP
php使用array_chunk函数将一个数组分割成多个数组
2018/12/05 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
基于dom编程中 动态创建与删除元素的使用
2013/04/17 Javascript
js鼠标及对象坐标控制属性详细解析
2013/12/14 Javascript
纯css+js写的一个简单的tab标签页带样式
2014/01/28 Javascript
jsMind通过鼠标拖拽的方式调整节点位置
2015/04/13 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
js格式化输入框内金额、银行卡号
2016/02/01 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
2016/08/18 Javascript
怎样判断jQuery当前元素是隐藏还是显示
2016/11/23 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
微信小程序页面间通信的5种方式
2017/03/31 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
VsCode里的Vue模板的实现
2020/08/12 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
Python常用随机数与随机字符串方法实例
2015/04/09 Python
python先序遍历二叉树问题
2017/11/10 Python
python 通过xml获取测试节点和属性的实例
2018/03/31 Python
对Python subprocess.Popen子进程管道阻塞详解
2018/10/29 Python
python安装scipy的方法步骤
2019/06/26 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
基于Python实现体育彩票选号器功能代码实例
2020/09/16 Python
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
美国在线面料商店:Fashion Fabrics Club
2020/01/31 全球购物
什么是类的返射机制
2016/02/06 面试题
C和C++经典笔试题附答案解析
2014/08/18 面试题
护士自我鉴定怎么写
2014/02/07 职场文书
行政经理岗位职责
2015/04/15 职场文书
2016应届毕业生就业指导课心得体会
2016/01/15 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python
Vue3.0写自定义指令的简单步骤记录
2021/06/27 Vue.js
Nginx内网单机反向代理的实现
2021/11/07 Servers
python游戏开发之pygame实现接球小游戏
2022/04/22 Python