时间:2021-05-22
在做接口自动化的时候,请求数据之前都是JSON格式的,Python有自带的包来解决。最近在做APP的接口,遇到XML格式的请求数据,费了很大劲来解决,解决方式是:接口文档拿到的是XML,在线转化为json格式(目的是拿到xml数据的模板),存放到json文件中,根据接口名去提取。
下载xmltodict(pip install xmltodict)
C:\Users\wy.DESKTOP-KENPKKP\Desktop\Dingda\dingAPI>pip install xmltodict
Requirement already satisfied: xmltodict in c:\users\wy.desktop-kenpkkp\appdata\local\programs\python\python36\lib\site-packages
(0.12.0)
直接演示了,准备一个原始的XML的数据
<?xml version="1.0"?><mydocument has="an attribute">#has是节点属性 <and> <many>elements</many> <many>more elements</many> </and> <plus a="complex"> element as well </plus></mydocument>由于目前没有找到能够将XML直接赋值给函数的方法,所以先用在线转化工具将XML转化为JSON,转化后的结果为
{ "mydocument": { "-has": "an attribute", #在这里要留意一个事情,XML是有节点的,节点有属性,json数据的键之前有-的,就是属性,但是xmltodict识别的属性是@,所以要把-替换为@(就是这里找了好久) "and": { "many": [ "elements", "more elements" ] }, "plus": { "-a": "complex", "#text": " element as well " } }}示例代码
dictdata={ "mydocument": { "@has": "an attribute", "and": { "many": [ "elements", "more elements" ] }, "plus": { "@a": "complex", "#text": "element as well"}}}xmldata=xmltodict.unparse(dictdata,pretty=True)#dict转xmlprint(xmldata)#解析结果可以复制运行查看,结果是原始数据new_dictdata=xmltodict.parse(xmldata,process_namespaces = True)#xml转dictprint(new_dictdata)#在这里有一个注意事项,new_dictdata的数据格式是<class 'collections.OrderedDict'>,并不直接是dict,需要自行处理"""处理方式如下"""key_dictdata=dict(new_dictdata)value_dictdata=dict(dict(new_dictdata)["mydocument"])key_dictdata["mydocument"]=value_dictdataprint(key_dictdata)上面就是xml和dict转化,如果需要转化json,内置的json模块就可以完成,但是在自动化测试框架中这样使用比较麻烦,而且复用性不好,封装好如下#-*- coding: utf-8 -*#@author 小测试 #@create 2019-10-30 15:46import xmltodict"""xml和dict转换"""def dict_xml(dictdata): """ dict转xml dictstr: dict字符串 return: xml字符串 """ xmlstr=xmltodict.unparse(dictdata, pretty=True) return xmlstrdef xml_dict(xmldata,moudle): """ xml转dict xmlstr: xml字符串 moudle:根节点 return: dict字符串 """ data=xmltodict.parse(xmldata,process_namespaces = True) dictdata=dict(data) _dictdata=dict(dictdata[moudle]) dictdata[moudle]=_dictdata return dictdata总结
以上所述是小编给大家介绍的Python中xml和dict格式转换的示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
dict的特性dict是python中的一个可变的数据类型,用{}表示,dict的key必须是不可变的数据类型,而value的数据类型可以任意。格式:{key:
1.构造微信提供的XML格式的音乐消息音乐的XML格式是这样的:复制代码代码如下:12345678我们写个函数将数据转换成这样的格式,这里面主要的数据是Musi
XML转JSON以下代码演示了如何将一个xml文件的数据转换为Json格式数据:functionxmlToArray($xml,$options=array()
python字符串,元组,列表,字典互相转换直接给大家上代码实例#-*-coding:utf-8-*-#1、字典dict={'name':'Zara','age
本文实例讲述了python实现string和dict的相互转换方法。分享给大家供大家参考,具体如下:字典(dict)转为字符串(string)我们可以比较容易的