YAML+PyYAML笔记 9 | PyYAML源码之dump(),dump_all(),safe_dump(),yaml.YAMLObject

简介: YAML+PyYAML笔记 9 | PyYAML源码之dump(),dump_all(),safe_dump(),yaml.YAMLObject

1 yaml.dump()

  • 源码:
    在这里插入图片描述
  • 作用:

将Python对象序列化为YAML流。如果stream为None,则返回生成的字符串。

  • 解析:
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2023/7/31 
# 文件名称:pyyaml_dump.py
# 作用:yaml.dump()
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson

import yaml

data = [{
   
   "user01": "xiaozhang", "age": 18},
        {
   
   "user02": "xiaoli", "age": 20},
        {
   
   "user03": "xiaowang", "age": 30}
]

yaml_data = yaml.dump(data)
print(yaml_data)
  • 输出:
- age: 18
  user01: xiaozhang
- age: 20
  user02: xiaoli
- age: 30
  user03: xiaowang

2 yaml.dump()

  • 源码:
    在这里插入图片描述

  • 作用:

将一系列Python对象序列化为YAML流。如果stream为None,则返回生成的字符串。

  • 解析:
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2023/7/31 
# 文件名称:pyyaml_dump_all.py
# 作用:yaml.dump_all()
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson

import yaml
data1 = [{
   
   "user01": "xiaozhang", "age": 18},
        {
   
   "user02": "xiaoli", "age": 20},
        {
   
   "user03": "xiaowang", "age": 30}
]

data2 = {
   
   "name1": "xiaoxiao", "age": 99}

data3 = ["beijing", "sahnghai", "guangzhou", "shenzhen"]


yaml_data = yaml.dump_all([data1, data2, data3])
print(yaml_data)
  • 输出:
 - age: 18
  user01: xiaozhang
 - age: 20
  user02: xiaoli
 - age: 30
  user03: xiaowang
---
age: 99
name1: xiaoxiao
---
 - beijing
 - sahnghai
 - guangzhou
 - shenzhen

3 yaml.safe_dump

  • 源码:
    在这里插入图片描述
  • 作用:

将Python对象序列化为YAML流。只生成基本的YAML标签。如果stream为None,则返回生成的字符串。

4 yaml.YAMLObject

  • 源码:
    在这里插入图片描述
  • 作用:

一个可以将自己转储到YAML流的对象,并且从YAML流加载自身。
用元类来注册一个构造器(也就是代码里的 init() 方法),让你把yaml节点转为Python对象实例,用表示器(也就是代码里的 repr() 函数)来让你把Python对象转为yaml节点,

  • 解析:
import yaml

class Person(yaml.YAMLObject):

    yaml_tag = '!person'

    def __init__(self, name, age):

        self.name = name

        self.age = age

    def __repr__(self):

        return '%s(name=%s, age=%d)' % (self.__class__.__name__, self.name, self.age)

james = Person('James', 20)

print (yaml.dump(james))  # Python对象实例转为yaml

lily = yaml.load('!person {name: Lily, age: 19}')

print (lily)  # yaml转为Python对象实例
  • 输出:
!person {
   
   age: 20, name: James}

Person(name=Lily, age=19)
目录
相关文章
|
4月前
|
机器学习/深度学习 计算机视觉 Python
深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件
深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件
154 0
|
安全 Python
YAML+PyYAML笔记 8 | PyYAML源码之full_load(),full_load_all(),safe_load(),unsafe_load(),unsafe_load_all()
YAML+PyYAML笔记 8 | PyYAML源码之full_load(),full_load_all(),safe_load(),unsafe_load(),unsafe_load_all()
138 1
|
XML 编解码 数据挖掘
YOLOv5源码逐行超详细注释与解读(5)——配置文件yolov5s.yaml
YOLOv5源码逐行超详细注释与解读(5)——配置文件yolov5s.yaml
2025 1
YOLOv5源码逐行超详细注释与解读(5)——配置文件yolov5s.yaml
|
Python
YAML+PyYAML笔记 7 | PyYAML源码之yaml.compose_all(),yaml.load(),yaml.load_all()
YAML+PyYAML笔记 7 | PyYAML源码之yaml.compose_all(),yaml.load(),yaml.load_all()
75 2
|
测试技术 Python
老板叫我写个APP自动化--Yaml文件读取--内附整个框架源码
老板叫我写个APP自动化--Yaml文件读取--内附整个框架源码
123 0
YAML+PyYAML笔记 5 | YAML流样式、块样式、序列样式、Flow Mappings
YAML+PyYAML笔记 5 | YAML流样式、块样式、序列样式、Flow Mappings
63 0
|
3月前
|
JSON Kubernetes API
深入理解Kubernetes配置:编写高效的YAML文件
深入理解Kubernetes配置:编写高效的YAML文件
|
6月前
|
存储 运维 Serverless
函数计算产品使用问题之在YAML文件中配置了环境变量,但在PHP代码中无法读取到这些环境变量,是什么原因
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
2月前
|
Kubernetes 应用服务中间件 nginx
k8s学习--YAML资源清单文件托管服务nginx
k8s学习--YAML资源清单文件托管服务nginx
k8s学习--YAML资源清单文件托管服务nginx
|
2月前
|
Kubernetes Docker Perl
k8s常见故障--yaml文件检查没有问题 pod起不来(一直处于创建中)
k8s常见故障--yaml文件检查没有问题 pod起不来(一直处于创建中)
124 1
下一篇
DataWorks