欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > Python 字典渲染字符串

Python 字典渲染字符串

2025/5/30 14:05:37 来源:https://blog.csdn.net/luckyITboy233/article/details/148293846  浏览:    关键词: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)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词