跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
Python

Python YAML 模块使用指南:接口测试参数存储与配置

综述由AI生成YAML 是一种数据序列化语言,用于以人类可读的形式存储信息。在 Python 环境中,通过 PyYAML 库可实现对 YAML 文件的读取、写入及清空操作,适用于接口自动化测试中的参数存储与配置管理。文章提供了具体的代码示例及安全注意事项,如使用 safe_load 和 safe_dump 防止恶意代码执行。

baireiraku发布于 2026/3/16更新于 2026/5/67 浏览
Python YAML 模块使用指南:接口测试参数存储与配置

一、YAML 介绍

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

1.1 核心特点

  • 简洁易读:语法简洁,减少 JSON、XML 中的引号、括号等'噪音'格式;
  • 非编程语言:主要用于存储配置信息,不具备编程逻辑;
  • 缩进敏感:缩进规则类似 Python,通过缩进来表示层级关系;
  • 区分大小写:对键名、值的大小写严格区分;
  • 禁用 Tab 键:不允许使用制表符缩进,需通过空格实现缩进(部分编辑器可配置 Tab 自动转为空格)。

1.2 支持的数据类型及语法对比(与 JSON)

YAML 文件后缀名为 .yaml 或 .yml(常用 .yml),支持多种数据类型,其语法与 JSON 对比如下:

数据类型YAML 语法JSON 语法
简单标量值key: value{"key": "value"}
整数和浮点数int_key: 123\nfloat_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:\n- item1\n- item2\n- item3{"list_key": ["item1", "item2", "item3"]}
映射(字典)map_key:\nsub_key1: sub_value1\nsub_key2: sub_value2{"map_key": {"sub_key1": "sub_value1", "sub_key2": "sub_value2"}}
嵌套结构nested_key:\nlist_key:\n- item1\n- item2\nmap_key:\nsub_key1: sub_value1\nsub_key2: sub_value2{"nested_key": {"list_key": ["item1", "item2"], "map_key": {"sub_key1": "sub_value1", "sub_key2": "sub_value2"}}}

1.3 语法辅助工具

若对 YAML 语法不熟悉,可使用 JSON 转 YAML 工具快速生成,生成后需二次检查格式正确性。

示例:

在这里插入图片描述

二、YAML 使用(Python 环境)

在 Python 中使用 YAML 需借助 PyYAML 库,主要用于读取、写入、清空 YAML 配置文件,适用于接口自动化测试中的参数存储、配置管理等场景。

2.1 安装 PyYAML 库

安装命令:

pip install PyYAML

安装后可通过 pip list 查看是否安装成功。

2.2 核心操作(读取、写入、清空)

2.2.1 追加写入 YAML 文件

向指定 YAML 文件追加数据(若文件不存在则自动创建):

import yaml
import os

def write_yaml(filename, data):
    # 拼接文件路径(默认在项目根目录的 data 文件夹下)
    file_path = os.getcwd() + "/data/" + filename
    # 以追加模式打开文件,指定编码为 utf-8
    with open(file_path, encoding="utf-8", mode="a+") as f:
        # 安全写入数据,支持 Unicode 字符
        yaml.safe_dump(data, stream=f, allow_unicode=True)
2.2.2 读取 YAML 文件数据

根据指定键读取 YAML 文件中的对应值:

import yaml
import os

def read_yaml(filename, key):
    file_path = os.getcwd() + "/data/" + filename
    with open(file_path, encoding="utf-8", mode="r") as f:
        # 安全加载 YAML 数据
        data = yaml.safe_load(f)
        # 返回指定键对应的值
        return data[key]
2.2.3 清空 YAML 文件

清空指定 YAML 文件中的所有内容:

import os

def clear_yaml(filename):
    file_path = os.getcwd() + "/data/" + filename
    with open(file_path, encoding="utf-8", mode="w") as f:
        # 清空文件内容
        f.truncate()

2.3 完整使用示例

import yaml
import os

# 追加写入
def write_yaml(filename, data):
    file_path = os.getcwd() + "/data/" + filename
    with open(file_path, encoding="utf-8", mode="a+") as f:
        yaml.safe_dump(data, stream=f, allow_unicode=True)

# 读取
def read_yaml(filename, key):
    file_path = os.getcwd() + "/data/" + filename
    with open(file_path, encoding="utf-8", mode="r") as f:
        data = yaml.safe_load(f)
        return data[key]

# 清空
def clear_yaml(filename):
    file_path = os.getcwd() + "/data/" + filename
    with open(file_path, encoding="utf-8", mode="w") as f:
        f.truncate()

# 测试函数
def test_yml():
    # 1. 写入 YAML 文件(数据为字典类型)
    data = {"str": "12345", "user": "zhangsan", "password": "123456"}
    write_yaml('test.yml', data)
    # 2. 读取 YAML 文件中 "str" 键对应的值
    ret = read_yaml('test.yml', "str")
    print("读取结果:", ret)
    # 输出:读取结果:12345
    # 3. 清空 YAML 文件
    clear_yaml('test.yml')

# 执行测试
if __name__ == "__main__":
    test_yml()

2.4 关键说明

  • yaml.safe_dump():安全写入数据,避免执行恶意代码,推荐优先使用(而非 yaml.dump());
  • yaml.safe_load():安全加载数据,同样用于防范恶意代码,避免使用 yaml.load()(存在安全风险);
  • 文件路径:示例中默认将 YAML 文件放在项目根目录的 data 文件夹下,需确保该文件夹已创建,否则会抛出文件不存在异常;
  • 编码格式:指定 encoding="utf-8" 避免中文等特殊字符出现乱码。

目录

  1. 一、YAML 介绍
  2. 1.1 核心特点
  3. 1.2 支持的数据类型及语法对比(与 JSON)
  4. 1.3 语法辅助工具
  5. 二、YAML 使用(Python 环境)
  6. 2.1 安装 PyYAML 库
  7. 2.2 核心操作(读取、写入、清空)
  8. 2.2.1 追加写入 YAML 文件
  9. 2.2.2 读取 YAML 文件数据
  10. 2.2.3 清空 YAML 文件
  11. 2.3 完整使用示例
  12. 追加写入
  13. 读取
  14. 清空
  15. 测试函数
  16. 执行测试
  17. 2.4 关键说明
  • 💰 8折买阿里云服务器限时8折了解详情
  • GPT-5.5 超高智商模型1元抵1刀ChatGPT中转购买
  • 代充Chatgpt Plus/pro 帐号了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 基于 Flux 模型的本地 AI 绘画部署与使用指南
  • Java 实现 Syslog 日志的发送与接收
  • OpenCV Canny 边缘检测算法原理与 C++ 实现
  • C语言递归快速排序算法详解
  • 前端监控实战:构建可观测的 Web 应用
  • Windows 11 与 Ubuntu 22.04 双系统安装指南
  • ToDesk 与顺网、海马云 DeepSeek 部署体验对比
  • STM32 标准库、HAL 库与 LL 库静态库创建实战指南
  • 渗透测试核心思路与实战方法论总结
  • faster-whisper-GUI 语音识别工具安装与配置指南
  • OpenClaw Windows 本地部署及远程监控实操
  • Linux 手动部署并测试内网穿透
  • OpenClaw 底层原理深度拆解:从指令到执行
  • C++ 实现 JSON 与 HTTP 协议:从零构建 Web 计算器服务器
  • Z-Image-ComfyUI:AI 绘画中文提示词效果实测
  • 本地部署大模型:Ollama 部署与实战指南
  • VSCode 配置 Git 忽略文件及文件夹的多种方法
  • 强化学习:演员评论家 Actor-Critic 算法详解与实现
  • HarmonyOS ArkWeb 开发指南:Hybrid 应用鸿蒙化与 JSBridge
  • 基于分布式光纤声波传感(DAS)的无人机入侵探测技术与应用

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online