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

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)
http://www.xdnf.cn/news/9582.html

相关文章:

  • 【 ai-safety-gridworlds】介绍和使用(未完)
  • 从零到一选择AI自动化平台:深度解析n8n、Dify与Coze
  • 通过阿里云服务发送邮件
  • 具身智能专题(2)-主从臂零位校准及摄像头数据获取与检验
  • XCTF-web-fileclude
  • IP地址基础知识
  • opengl - 在本地搭建API的文档说明网站
  • Zsh/Bash Conda设置延迟启动,启动速度优化
  • Vue之使用Vue-cli创建Webpack工程化项目
  • DDS通信中间件——DDS-TSN规范
  • 大模型-高通平台性能测试示例-2
  • Error Swap_arc198c分析与解答
  • docker容器间服务访问的问题
  • 最终章:终焉之塔 · 前端之道
  • WinServer2016安装Docker
  • ResizeObserver 解决 echarts渲染不出来,内容宽度为 0的问题
  • 无法发布到PowerBI?试试拆分它
  • 回头看,FPGA+RK3576方案的功耗性能优势
  • 设计模式-单例模式
  • 理解 C++ 多态:概念、实现方式与实战示例
  • 密钥管理系统在存储加密场景中的深度实践:以TDE透明加密守护文件服务器安全
  • VC++和python从哪一年开始支持split(字符串)非单个字符
  • 【深度学习-pytorch篇】1. Pytorch矩阵操作与DataSet创建
  • LiveGBS国标视频平台收流模式:UDP、TCP被动与TCP主动传输模式之差异剖析
  • 【系统架构设计师】2025年上半年真题论文回忆版: 论多模型数据库及应用(包括解题思路和参考素材)
  • python--=的用法
  • 小白的进阶之路系列之四----人工智能从初步到精通pytorch自定义数据集下
  • 【每天一个知识点】LangChain
  • 针对Python开发的工具推荐及分析,涵盖集成开发环境(IDE)、轻量级工具、在线开发平台、代码管理工具等)
  • 智能手表怎么申请欧盟EN 18031认证