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 Sleep休眠函数使用简单实例
Feb 02 Python
python安装以及IDE的配置教程
Apr 29 Python
编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法
Jan 20 Python
Python的Flask框架应用程序实现使用QQ账号登录的方法
Jun 07 Python
Python数据分析之真实IP请求Pandas详解
Nov 18 Python
浅谈python中的占位符
Nov 09 Python
pyspark操作MongoDB的方法步骤
Jan 04 Python
Python 实现的 Google 批量翻译功能
Aug 26 Python
selenium中get_cookies()和add_cookie()的用法详解
Jan 06 Python
python GUI库图形界面开发之PyQt5不规则窗口实现与显示GIF动画的详细方法与实例
Mar 09 Python
python中逻辑与或(and、or)和按位与或异或(&amp;、|、^)区别
Aug 05 Python
python之json文件转xml文件案例讲解
Aug 07 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输出控制功能在简繁体转换中的应用
2006/10/09 PHP
PHP parse_url 一个好用的函数
2009/10/03 PHP
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
php中instanceof 与 is_a()区别分析
2015/03/03 PHP
PHP实现一个简单url路由功能实例
2016/11/05 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
2017/03/13 PHP
小议Javascript中的this指针
2010/03/18 Javascript
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
js原生appendChild的bug解决心得分享
2013/07/01 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
jquery实现动静态条形统计图
2015/08/17 Javascript
JS获取月份最后天数、最大天数与某日周数的方法
2015/12/08 Javascript
全面解析Bootstrap布局组件应用
2016/02/22 Javascript
通过原生JS实现为元素添加事件的方法
2016/11/23 Javascript
JavaScript实现图像模糊化的方法实例
2017/01/15 Javascript
JS闭包可被利用的常见场景小结
2017/04/09 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
2018/03/03 Javascript
详解a标签添加onclick事件的几种方式
2019/03/29 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
2020/04/22 Javascript
JavaScript React如何修改默认端口号方法详解
2020/07/28 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
解决antd 表单设置默认值initialValue后验证失效的问题
2020/11/02 Javascript
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
python中使用OpenCV进行人脸检测的例子
2014/04/18 Python
python3中set(集合)的语法总结分享
2017/03/24 Python
TensorFlow利用saver保存和提取参数的实例
2018/07/26 Python
对python中字典keys,values,items的使用详解
2019/02/03 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
python实现按首字母分类查找功能
2019/10/31 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
详解如何解决使用JSON.stringify时遇到的循环引用问题
2021/03/23 Javascript
2014年酒店服务员工作总结
2014/12/08 职场文书
勤俭节约主题班会
2015/08/13 职场文书
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis
宫崎骏十大动画电影,宫崎骏好看的动画电影排名
2022/03/22 日漫