跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

Python YAML 模块实战:接口测试参数存储与配置

YAML 是一种人类可读的数据序列化语言,常用于接口测试中的参数存储与配置管理。介绍在 Python 环境下通过 PyYAML 库实现 YAML 文件的读取、写入及清空操作。重点涵盖数据类型对比、缩进规则、安全加载方法 safe_load 与 safe_dump 的使用,以及文件路径处理与编码注意事项,帮助开发者高效构建可维护的配置方案。

FrontendX发布于 2026/3/28更新于 2026/6/414 浏览
Python YAML 模块实战:接口测试参数存储与配置

YAML 简介

YAML 是一种人类可读的数据序列化语言,最初代表'Yet Another Markup Language',后更正为'YAML Ain't Markup Language'。它主要用于存储配置信息,语法简洁,去除了 JSON 或 XML 中大量的引号和括号。

核心特点
  • 缩进敏感:类似 Python,通过空格缩进表示层级,禁用 Tab 键。
  • 区分大小写:键名和值严格区分大小写。
  • 非编程语言:仅用于数据存储,不具备逻辑执行能力。
数据类型与 JSON 对比
类型YAML 示例JSON 示例
标量key: value{"key": "value"}
列表list:
  • item1
  • item2 | {"list": ["item1", "item2"]} | | 映射 | map: sub_key: value | {"map": {"sub_key": "value"}} |

Python 环境配置

在 Python 中使用 YAML 需安装 PyYAML 库。

pip install PyYAML

安装后可通过 pip list 验证。

核心操作实践

1. 写入与追加

向 YAML 文件写入数据时,若文件不存在会自动创建。注意追加模式下的文档分隔问题,通常建议每次写入完整结构或使用多文档流。

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)
2. 读取数据

读取时需确保文件存在且格式正确,推荐使用 safe_load 防止反序列化漏洞。

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:
        data = yaml.safe_load(f)
        return data[key]
3. 清空文件

直接以写模式打开并截断即可。

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()

关键注意事项

  • 安全性:务必使用 yaml.safe_load() 和 yaml.safe_dump(),避免使用 yaml.load() 以防代码执行风险。
  • 编码:显式指定 encoding="utf-8" 避免中文乱码。
  • 路径:示例默认将文件保存在项目根目录的 data 文件夹下,请确保该目录已存在。

完整示例

以下是一个整合了写入、读取和清空的测试脚本:

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():
    data = {"str": "12345", "user": "zhangsan", "password": "123456"}
    write_yaml('test.yml', data)
    ret = read_yaml('test.yml', "str")
    print("读取结果:", ret)
    clear_yaml('test.yml')

if __name__ == "__main__":
    test_yml()

目录

  1. YAML 简介
  2. 核心特点
  3. 数据类型与 JSON 对比
  4. Python 环境配置
  5. 核心操作实践
  6. 1. 写入与追加
  7. 2. 读取数据
  8. 3. 清空文件
  9. 关键注意事项
  10. 完整示例
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • DooTask 升级指南:解锁 AI 新功能与协作优化
  • 100倍提速!OpenAI Consistency Model终结AI绘画等待时代
  • 2023 年网络安全入职与转行职业规划指南
  • 牧神记圣女司幼幽 AI 绘图工作流搭建:Z-Turbo 模型实战
  • 从人类视频到机器人跳舞:BeyondMimic 全流程解析与 rl_sar 部署实践
  • Linux 线程互斥与互斥量:原理、实践与封装
  • C++ 虚函数与纯虚函数:多态的核心实现原理
  • 主流大模型的优势与未来发展趋势分析
  • 基于深度学习的无人机洪水图像分割与水量估算
  • Visual C++运行库管理指南:诊断、修复与维护
  • LLama-Factory 与传统微调:效率与成本深度对比
  • 从生产者 - 消费者模型看 Socket 缓冲区:C++高效数据流管理
  • 双指针算法实战:唯一雪花、逛画展与丢手绢
  • 远程控制软件安全分析:ToDesk、RayLink、TeamViewer 与 Splashtop 机制对比
  • AI 大模型时代下 2024 年医疗器械网络安全应对与挑战
  • AI 大模型技术入门与全栈开发实战指南
  • Linux 环境下手写线程池设计与实现
  • 前缀和算法实战:和为 K 的子数组
  • 模拟算法详解:编程与问题分析实战
  • LLaMA-Factory 命令行工具常用操作指南

相关免费在线工具

  • 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