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正则表达式re模块详细介绍
May 29 Python
python进程类subprocess的一些操作方法例子
Nov 22 Python
如何处理Python3.4 使用pymssql 乱码问题
Jan 08 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
Jul 16 Python
如何安装多版本python python2和python3共存以及pip共存
Sep 18 Python
Flask配置Cors跨域的实现
Jul 12 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
Oct 09 Python
Python3搭建http服务器的实现代码
Feb 11 Python
Python3连接Mysql8.0遇到的问题及处理步骤
Feb 17 Python
基于python+selenium自动健康打卡的实现代码
Jan 13 Python
python使用pywinauto驱动微信客户端实现公众号爬虫
May 19 Python
Pytorch GPU内存占用很高,但是利用率很低如何解决
Jun 01 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脚本的10个技巧(1)
2006/10/09 PHP
PHP编程中的Session阻塞问题与解决方法分析
2017/08/07 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
PHP笛卡尔积实现算法示例
2018/07/30 PHP
js 鼠标点击事件及其它捕获
2009/06/04 Javascript
javascript之学会吝啬 精简代码
2010/04/25 Javascript
使用Chrome浏览器调试AngularJS应用的方法
2015/06/18 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
基于slideout.js实现移动端侧边栏滑动特效
2016/11/28 Javascript
微信小程序 引入es6 promise
2017/04/12 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
2017/06/20 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
2017/09/19 jQuery
Angular Material Icon使用详解
2018/11/07 Javascript
浅谈JS和jQuery的区别
2019/03/27 jQuery
微信小程序设置全局请求URL及封装wx.request请求操作示例
2019/04/02 Javascript
Vue拖拽组件列表实现动态页面配置功能
2019/06/17 Javascript
使用python解析xml成对应的html示例分享
2014/04/02 Python
Python单元测试实例详解
2018/05/25 Python
python同时遍历数组的索引和值的实例
2018/11/15 Python
python实现学员管理系统
2019/02/26 Python
对django2.0 关联表的必填on_delete参数的含义解析
2019/08/09 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
2019/11/19 Python
python3实现弹弹球小游戏
2019/11/25 Python
python中加背景音乐如何操作
2020/07/19 Python
Python爬虫之Selenium库的使用方法
2021/01/03 Python
美国电视购物:QVC
2017/02/06 全球购物
英国计算机产品零售商:Novatech(定制个人电脑、笔记本电脑、工作站和服务器)
2018/01/28 全球购物
办公室文秘自我评价
2013/09/21 职场文书
个人作风建设心得体会
2014/10/22 职场文书
机关单位工作失职检讨书
2014/11/20 职场文书
违纪检讨书
2015/01/27 职场文书
匿名信格式范文
2015/05/27 职场文书
党支部意见范文
2015/06/02 职场文书
JavaScript如何优化逻辑判断代码详解
2021/06/08 Javascript