python--利用列表推导式快速生成xml格式数据
在接口自动化测试中,我们经常将要发送的数据放到excel里。
json数据放至excel方便,但最近的一个测试,数据是xml格式发送的
如下:
|
属性 |
必选/可选 |
描述 |
||||
|
1. |
Message |
Element |
M |
信息开始,XML根元素 |
||
|
2. |
Version |
Attribute |
M |
协议版本信息,取值为1.0 |
||
|
3. |
Header |
Element |
M |
消息头 |
||
|
5. |
MsgType |
Attribute |
M |
取值为包头的命令字值 |
||
|
MsgSeq |
Attribute |
M |
取值为包头的消息序列号 |
|||
例如:
<?xml version="1.0" encoding="UTF-8"?>
<Message Version="1.0">
<Header MsgType="0x4001" MsgSeq=""/>
....
</Message>
在实际测试中不可能将所有数据放至excel中,这样太麻烦,更改也痛苦,所以将数据设成如下:
| Name | Data | url | Method | MsgType | Response | token |
| 用户登陆-正确密码 | LogonId:15622222222 Password:k4y5eMcjTbNp/ncsaaD8OA== UserType:1 |
/spi/login | POST | LoginRequest |
<Result RetCode="200" RetDesc="操作成功"/> <LoginResponse> <SessionId>xxxx</SessionId> </LoginResponse> |
否 |
| 用户登陆-错误密码 | LogonId:156222222 Password:111111 UserType:0 |
/spi/login | POST | LoginRequest |
<Result RetCode="200" RetDesc="操作成功"/> <LoginResponse> <SessionId>xxxx</SessionId> </LoginResponse> |
否 |
| 用户登陆-错误的用户类型 | LogonId:156222222 Password:111111 UserType:3 |
/spi/login | POST | LoginRequest |
<Result RetCode="200" RetDesc="操作成功"/> <LoginResponse> <SessionId>xxxx</SessionId> </LoginResponse> |
否 |
在python中使用列表推导式,一句话就生成相应的xml数据,简单实现,截取的部分代码如下:
读取excel这里不罗列
dd=testDate.strip().split()
aa=dict(tuple(item.split(':') for item in dd))
xmlheader='<?xml version="1.0" encoding="utf-8"?><Message Version="1.0"><Header MsgType="%s" MsgSeq="1"/><%s>' % (infoType,infoType)
xmlbody="".join([ '<%s>%s</%s>' % (i,v,i) for (i,v) in aa.items()]) #形成XML文件
xmltail='</%s></Message>' % infoType
xml=xmlheader+xmlbody+xmltail
小技巧,供有需要的人参考
python--利用列表推导式快速生成xml格式数据的更多相关文章
- Python基础-列表推导式
python中列表推导式有三种数据类型可用:列表,字典,集合 列表推导式书写形式: [表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件] 1,列表推导式 ...
- python 3列表推导式的的一点理解!
python 3列表推导式的的一点理解! Python的列表推导式对于新手来说一般都难以理解,简单看个例子: [x * x for x in range(1,100)] 上面是一个很简单的列表推导式, ...
- python基础——列表推导式
python基础--列表推导式 1 列表推导式定义 列表推导式能非常简洁的构造一个新列表:只用一条简洁的表达式即可对得到的元素进行转换变形 2 列表推导式语法 基本格式如下: [expr for va ...
- Python之列表推导式
我们经常需要这样处理一个列表:把一个列表里面的每个元素, 经过相同的处理 ,生成另一个列表. 比如:一个列表1,里面都是数字,我们需要生成一个新的列表B,依次存放列表A中每个元素的平方 怎么办? 当然 ...
- Python的列表推导式,字典推导式,集合推导式使用方法
推导式分为列表推导式(list),字典推导式(dict),集合推导式(set)三种 1.列表推导式也叫列表解析式.功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表格式:用中括号括起 ...
- Python的列表推导式
1.列表推导式书写形式: [表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件] 2.举例说明: #!/usr/bin/python # -*- codi ...
- Python基础-列表推导式、匿名函数、os/sys/time/datetime/pymysql/xlwt/hashlib模块
列表推导式 [表达式 for 变量 in range(n) if 条件] 等效于 for 变量 in in range(n): if 条件: 表达式 优点:书写方便,缺点:不易读 注意:用的是方括号 ...
- Python函数——列表推导式、生成器与迭代器
列表推导式 产生背景 现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求你把列表里的每个值加1,你怎么实现? 第一种方法: a = [1,3,4,6,7,7,8,9 ...
- python - list 列表推导式
一.如有两个list,分别为: a = [1,2,3,4,5,6]b = ["a","b","c","d"," ...
随机推荐
- __setup、early_param的解析
内核初始化时根据字符串匹配获得相应的处理函数,查找的时候有些麻烦. 写个脚本对将内核中的__setup和early_param显式做了解析: __setup #! /bin/bash grep '\& ...
- 【ML】人脸识别
https://github.com/colipso/face_recognition https://medium.com/@ageitgey/machine-learning-is-fun-par ...
- vue-cli打包之后的项目在nginx的部署
vue-cli执行 npm run build 进行打包,生成dist文件夹,把该文件夹下的文件直接复制到nginx服务器目录下,就可打开项目,但是只有首页是可以看到的,再刷新一下就404了,原因是v ...
- python06 深浅拷贝原理
preface 这里主要说深浅拷贝的原理.首先说说数字与字符串作为内存对象的重用,请看代码: a1=12345 b1=12345 a2=a1 print(id(a1),id(b1),id(a2)) 打 ...
- bashrc profile的区别
bashrc与profile的区别 bashrc和profile的差异在于:1. bashrc是在系统启动后就会自动运行.2. profile是在用户登录后才会运行.3. 进行设置后,可运用sourc ...
- 【转】Java中的多线程学习大总结
多线程作为Java中很重要的一个知识点,在此还是有必要总结一下的. 一.线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程 ...
- 内省Introspector(反射操作javaBean)
一:内省是一种特殊的反射,来更方便的操作javaBean对象,通过内省可以获取到类字节码的描述器, 然后解剖每一个字段,获取每个字段的读写方法,即get/set方法的反射,然后获取或者是封装bean的 ...
- Git项目协同开发学习笔记1:项目库开发基础git命令
这年头git基本都是项目开发的标配,之前刚好碰到了就花了两天时间系统学习了下.本文内容基本来自以下tutorial:Learn Git(建议直接去看原文,因为这个网站是有更新的).这个是我看过对git ...
- Ubuntu 14.04服务器安装及软件配置
1.安装操作系统,配置root账号,通过sudo设置root的密码 如果使用ubuntu server 14.04,开启root需额外配置 1.开启root远程登录权限 sudo vi /etc/ss ...
- ios开发之--编码及命名规范
做了几年的开发工作,因为是半路出的家,所以对这块一直都没怎么重视,所以在工作中,出现了很多的尴尬场景,编码和命名的规范是一定得有的,最起码一个团队之间的规范也是很有必要的.面向对象的编程,其实很好理解 ...