Python使用pyyaml模块处理yaml数据
作者:酌三巡 发布时间:2023-11-29 10:08:39
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}
来源:https://www.cnblogs.com/zhuosanxun/p/11376545.html


猜你喜欢
- 最近在折腾Python Web,在测试的时候发现,本机可以正常访问,但外网无法通过公网IP访问页面。经过各种搜索,有大致三种解决方案。一、修
- select a.f_username from ( SELECT /*+parallel(gu,4)*/distinct gu.f_use
- 本文实例讲述了js类的继承定义与用法。分享给大家供大家参考,具体如下:如何实现类的继承呢?有如下2个构造函数:function People
- python应该是近几年比较火的语言之一,很多人刚学python不知道该如何学习,尤其是没有编程基础想要从事程序员工作的小白,想必应该都会有
- 装饰器本质上是一个 Python 函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增加额外功能,装饰器的返回值也是一个函数/类对
- 本文将介绍使用Dreamweaver来制作滑动菜单的方法,言归正传,废话少说。准备工作如下: 1. 在dw中新建一个空白文档(或者打开你要添
- 1、字符串的索引与获取字符串的索引方式与列表的索引方式是一样的。只不过列表是每个元素的自身就有一个索引位置,而字符串是每个字符就有一个索引位
- 在回程的高铁上学习了这一节,由于对cmd命令行的相关知
- Python一切皆对象(object),每个对象都可能有多个属性(attribute)。Python的属性有一套统一的管理方案。属性的__d
- 前言VScode是一个相当优秀的IDE,具备开源、跨平台、模块化、插件丰富、启动时间快、颜值高、可高度定制等等优秀的特质,不愧是微软爸爸的私
- 一、日志库选型需要和比较1.日志库选型需求日志性能不同日志级别可读性(包括日志采集、监控等)文件切割(不同维度分割)2.日志库比较记录一条消
- 一、旧版本(1.0以下)的卷积函数:tf.nn.conv2d在tf1.0中,对卷积层重新进行了封装,比原来版本的卷积层有了很大的简化。con
- MatplotlibMatplotlib 是Python中类似 MATLAB 的绘图工具,熟悉 MATLAB 也可以很快的上手 Matplo
- 正则表达式是用于处理字符串的强大工具,它并不是Python的一部分。其他编程语言中也有正则表达式的概念,区别只在于不同的编程语言实现支持的语
- 包括安装时提示有挂起的操作、收缩数据库、压缩数据库、转移数据库给新用户以已存在用户权限、检查备份集、修复数据库等。 (一)挂起操作在安装S
- 原图矫正后我新建了个jz的文件夹放相机矫正所需要拍摄的图片,如下:共12张 # coding:utf-8import cv2imp
- 1. ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(A) A,ascii(a) a,ascii(0
- 数据去重可以使用duplicated()和drop_duplicates()两个方法。DataFrame.duplicated(subset
- 1。onabort(ns3,ns4,ie4):当用户终止正在打开的网页时产生该事件。2。onblur(ns3,ns4,ie3,ie4):某元
- Web Forms 2.0 是一个很有意思的东东,是 HTML 5 的组成部分。它的目标是提升表单的使用性 (usability),基本上就