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

Python 字典渲染字符串

在自动化测试中,不同文件中的全局变量传递,往往是通过将一些全局变量存放在一个dict的字典中,再通过字典的get(key)来传递和接收,最后将其应用到请求数据中。这里介绍的是另一种方式,是通过jinja2夹具来将全局变量字典中的K:V渲染到一个字符串中。

1.安装

pip install jinja2

2.导包

这里要用到jinja2的Template类

from jinja2 import Template

3.代码示例

# -*- coding:utf-8 -*-
# @File:vars_render.py
# @Date:2025/5/28 22:33
# @Author:wayne
# @description:将字典dict的K:V渲染到一个字符串中
from jinja2 import Templatedef reFlash(target, contexts):"""使用字符串模板和字典来进行字符串的替换操作:param target: 目标字符串,即需要被替换的字符串,数据类型:str:param contexts: 替换的原字典,数据类型:dict:return: 返回替换后的字符串,如果target是个字典类型,则使用eval()函数将其还原"""if isinstance(target, dict):# 如果target原本是字典类型,则先强转为字符串类型后进行替换,再使用eval()函数将结果 "{}" 字符串还原成字典return eval(Template(str(target)).render(contexts))else:# 如果target原本是非字典类型,则先强转为字符串类型,再进行替换return Template(str(target)).render(contexts)if __name__ == '__main__':context = {"name": "张三", "age": 20}target1 = "我是{{name}},今年{{age}}岁"rf = reFlash(target1, context)print(type(rf), "======", rf)target1 = {"name": "{{name}}", "age": 19}rf = reFlash(target1, context)print(type(rf), "======", rf)

相关文章:

  • node创建自己的CLI脚手架(强化基础)
  • 苍茫命令行:linux模拟实现,书写微型bash
  • ​​知识图谱:重构认知的智能革命​
  • 【Rust】Rust获取命令行参数以及IO操作
  • ABAQUS三维功能梯度多孔结构材料FGM轴压模拟
  • 第二章 1.6 数据采集安全风险防范之数据源鉴别及记录
  • API 与 SPI
  • ZooKeeper 命令操作
  • 三维点云深度学习代码torch-points3d-SiamKPConvVariants复现记录(持续更新中)
  • Yocto meta-toradex-security layer创建加密数据分区应用说明
  • 高通滤波和低通滤波
  • 针对C语言的开发工具推荐及分析(涵盖编辑器、集成开发环境(IDE)、编译器、调试工具及辅助工具)
  • 电子电路:什么是C类放大器?
  • 【C++基础知识】【ASAN】
  • Kafka KRaft + SSL + SASL/PLAIN 部署文档
  • Python应用while循环猜数字
  • HTML5 视频播放器:从基础到进阶的实现指南
  • 电脑开机后出现bootmgr is conmpressed原因及解决方法
  • Android-GestureDetector学习总结
  • Hadoop复习(二)
  • 热点 做网站和营销 我只服他/搜索seo
  • 做房产中介需要有内部网站吗/yoast seo教程
  • 52麻将官方网站做代理/北京网站优化seo
  • 网站设计哪家公司好/7个湖北seo网站推广策略
  • 爬虫 网站开发实例/在线crm管理系统
  • 新疆住房城乡建设厅网站/优化推广网站推荐