当前位置: 首页 > news >正文

接口自动化-YAML

目录

1.YAML介绍

2.YAML安装

3.使用


1.YAML介绍

官方文档:https://pyyaml.org/wiki/PyYAMLDocumentation

YAML 是一种数据序列化语言,用于以人类可读的形式存储信息。它最初代表 “Yet Another Markup Language”,但后来更改为 “YAML Ain’t Markup Language”(YAML 不是一种标记语言),以区别于真正的标记语言。

它类似于 XML JSON 文件,但使用更简洁的语法。

特点:

  • YAML 是一种非常简单的基于文本的人类可读的语言,用于在人和计算机之间交换数据。
  • YAML 不是一种编程语言,主要用于存储配置信息。
  • YAML 的缩进像 Python 的缩进一样优雅。
  • YAML 还减少了 JSON 和 XML 文件中的大部分 “噪音” 格式,例如引号、方括号和大括号。

注意:

  • YAML 区分大小写。
  • YAML 不允许使用制表符(Tab 键)(你按下 Tab 后 YAML 仍能使用,是因为编辑器被配置为按下 Tab 键会插入适当数量的空格)。
  • YAML 遵循严格的缩进规则。

YAML 文件的后缀名是 .yaml 或 .yml

yaml 中支持不同数据类型,但在写法上稍有区别,详见下表:

数据类型YAML 写法JSON 写法
简单标量值key: value{
"key": "value"
}
整数和浮点数int_key: 123
float_key: 123.456
{
"int_key": 123,
"float_key": 123.456
}
布尔值bool_key: true{
"bool_key": true
}
字符串string_key: "This is a string"(""加不加都行){
"string_key": "This is a string"
}
列表list_key:
- item1
- item2
- item3
{
"list_key": [
"item1",
"item2",
"item3"
]
}
映射(字典)map_key:
sub_key1: sub_value1
sub_key2: sub_value2
{
"map_key": {
"sub_key1": "sub_value1",
"sub_key2": "sub_value2"
}
}
嵌套结构nested_key:
list_key:
- item1
- item2
map_key:
sub_key1: sub_value1
sub_key2: sub_value2
{
"nested_key": {
"list_key": [
"item1",
"item2"
],
"map_key": {
"sub_key1": "sub_value1",
"sub_key2": "sub_value2"
}
}
}

jsonyaml工具:
https://www.jashtool.com/json/to-yaml

nesred_key:list_key:- iterm1- iterm2- iterm3map_key:sub_key1: sub_value1sub_key2: sub_value2

2.YAML安装

pip install PyYAML==6.0.1

3.使用

创建一个firstyaml.yml文件:

创建一个 .py 文件

模式字符含义说明
'r'以只读方式打开文件(默认模式)
'w'以写入方式打开文件,若文件已存在则先截断(清空内容)
'x'创建新文件并以写入方式打开,若文件已存在则会报错
'a'以追加方式打开文件,写入内容会添加到文件末尾(不受当前指针位置影响)
'b'二进制模式(与其他模式结合使用,如 'rb' 表示二进制只读,'wb' 表示二进制写入)
't'文本模式(默认模式,可省略,如 'rt' 等同于 'r')
'+'读写模式(与其他模式结合使用,如 'r+' 表示可读可写,'w+' 表示写入并允许读取)

代码

import yaml#写入
def wirte_yaml(data):with open("./firstyaml.yml",encoding="utf-8",mode="a+")as f:yaml.safe_dump(data,encoding="utf-8",stream=f)
#读取
def read_yaml():with open("./firstyaml.yml",encoding="utf-8",mode="r")as f:data = yaml.safe_load(f)print(data)#清空文字
def clear_yaml():with open("./firstyaml.yml",encoding="utf-8",mode="w")as f:f.truncate()def test_wirteyaml():data = {"name":"zhangsan","age":"19"}wirte_yaml(data)def test_read_yaml():read_yaml()

http://www.dtcms.com/a/321496.html

相关文章:

  • 【其他分类】Showrunner AI版的Netflix 互动故事创作平台 进行动画生成与微调、角色场景创建
  • A100用transformers推理gpt-oss
  • 【无标题】无名管道
  • (第二篇)spring cloud之Eureka注册中心
  • JDK、eclipse的安装,配置JDK、Tomcat并使用eclipse创建项目
  • SpringBoot 处理 RESTful 服务中的异常与错误
  • 我和 ChatGPT:一次用 AI 反观自己的技术成长之旅
  • Android 中解决 Button 按钮背景色设置无效的问题
  • Redis 7主从复制与哨兵模式搭建
  • k8s-nfs实现创建sc的两种方式
  • ConcurrentDictionary 详解:.NET 中的线程安全字典
  • 并发编程(五)ThreadLocal
  • 生产环境Tomcat运行一段时间后,如何测试其性能是否满足后续使用
  • Rust语言序列化和反序列化vec<u8>,serde库Serialize, Deserialize,bincode库(2025年最新解决方案详细使用)
  • AI 智能体框架:LlamaIndex
  • 国内如何使用体验到GPT-5呢?附GPT快速升级Plus计划保姆级教程
  • 大模型量化上溢及下溢解析
  • 达梦DMFLDR导出和导入的方法
  • 以任务为中心的智能推荐系统架构设计:原理、实现与挑战分析
  • 深入理解Java集合框架:核心接口、实现类与实战选择
  • Vue2中,Promise.all()调用多个接口的用法
  • Numpy科学计算与数据分析:Numpy文件操作入门之数组数据的读取和保存
  • 智慧社区(十)——声明式日志记录与小区地图功能实现
  • 解决MinIO上传图片后返回URL无法访问的问题
  • Linux 启动流程实战:Device Tree 全解析与驱动绑定机制
  • 【LLM实战】RAG高级
  • 从0到1开发剧本杀小程序:全流程指南与避坑指南
  • 使用 C# 通过 .NET 框架开发应用程序的安装与环境配置
  • 网吧在线选座系统|基于java和小程序的网吧在线选座小程序系统设计与实现(源码+数据库+文档)
  • [202403-E]春日