Python中xml和dict格式转换的示例代码

最近在做APP的接口,遇到XML格式的请求数据,费了很大劲来解决,下面小编给大家分享下Python中xml和dict格式转换问题,感兴趣的朋友跟随小编一起看看吧

在做接口自动化的时候,请求数据之前都是JSON格式的,Python有自带的包来解决。最近在做APP的接口,遇到XML格式的请求数据,费了很大劲来解决解决方式是:接口文档拿到的是XML,在线转化为json格式(目的是拿到xml数据的模板),存放到json文件中,根据接口名去提取

github原文介绍:使用XML的python模块感觉就像您在使用JSON

链接:https://github.com/martinblech/xmltodict

下载xmltodict(pip install xmltodict)

C:Userswy.DESKTOP-KENPKKPDesktopDingdadingAPI>pip  install xmltodict

Requirement already satisfied: xmltodict in c:userswy.desktop-kenpkkpappdatalocalprogramspythonpython36libsite-packages

 (0.12.0)

直接演示了,准备一个原始的XML的数据

#has是节点属性 elementsmore elements element as well

由于目前没有找到能够将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转xml print(xmldata)#解析结果可以复制运行查看,结果是原始数据 new_dictdata=xmltodict.parse(xmldata,process_namespaces = True)#xml转dict print(new_dictdata)#在这里一个注意事项,new_dictdata的数据格式是,并不直接是dict,需要自行处理 """ 处理方式如下 """ key_dictdata=dict(new_dictdata) value_dictdata=dict(dict(new_dictdata)["mydocument"]) key_dictdata["mydocument"]=value_dictdata print(key_dictdata) 上面就是xml和dict转化,如果需要转化json,内置的json模块就可以完成,但是在自动化测试框架中这样使用比较麻烦,而且复用性不好,封装好如下 #-*- coding: utf-8 -* #@author 小测试 #@create 2019-10-30 15:46 import xmltodict """ xml和dict转换 """ def dict_xml(dictdata): """ dict转xml dictstr: dict字符串 return: xml字符串 """ xmlstr=xmltodict.unparse(dictdata, pretty=True) return xmlstr def 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格式转换的示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程之家网站的支持

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...