Python中的xml与dict的转换方法详解
作者:go_flush
这篇文章主要介绍了Python中的xml与dict的转换方法详解,xml 是指可扩展标记语言,一种标记语言类似html,作用是传输数据,而且不是显示数据。可以自定义标签,需要的朋友可以参考下
接口文档拿到的是XML,在线转化为json格式(目的是拿到xml数据的模板),存放到json文件中,根据接口名去提取。
- xml 是指可扩展标记语言,一种标记语言类似html,作用是传输数据,而且不是显示数据。可以自定义标签。
- Python 中的xml和dict 互相转化。使用的模块是xmltodict。
import re import xmltodict xml="""<notes> <to>demo</to> <from>哈哈</from> <header>呵呵</header> <body>"尼古拉斯赵四"</body> </notes>""" dict = {"goods":{"fruits":{"name":"melon","coloer":"red","nut":"walnut"}}} class XmlToDict(object): def get_dict(self,xml): """xml to dict""" return xmltodict.parse(xml_input=xml,encoding="utf-8") def get_xml_content(self,orderdict): for i in orderdict: print(orderdict[str(i)]) def get_content(self,xml): first_title = re.match(r"<.*>", xml).group()[1:-1] orderdict = self.get_dict(xml) orderdict=orderdict[first_title] self.get_xml_content(orderdict) def dicttoxml(self,dict): """dict to xml""" return xmltodict.unparse(dict,encoding="utf-8") if __name__ == '__main__': XmlToDict().get_content(xml) ret=XmlToDict().dicttoxml(dict) print(ret)
- python 中还有一个模块dicttoxml ,将字典转成xml
mport dicttoxml dict= {"goods":{"fruits":{"name":"melon","coloer":"red","nut":"walnut"}}} ret_xml = dicttoxml.dicttoxml(dict,custom_root="Request",root=True).decode("utf-8") # 默认是byte 类型,转成str。 print(type(ret_xml))
利用循环字典转成xml
dict = { "fruit": "apple", "goods": "hamburger" } def dicttoxml(iKwargs): xml = [] for k in sorted(iKwargs.keys()): v =iKwargs.get(k) xml.append("<{key}>{value}</{key}>".format(key=k,value=v)) return "<xml>{}</xml>".format("".join(xml)) ret=dicttoxml(dict) print(ret)
上面就是xml和dict转化,如果需要转化json,内置的json模块就可以完成,但是在自动化测试框架中这样使用比较麻烦,而且复用性不好,封装好如下
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的转换方法详解的文章就介绍到这了,更多相关Python中的xml与dict转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!