python 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:\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的数据

#has是节点属性

elements

more 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格式转换的示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

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

本文标题: Python中xml和dict格式转换的示例代码

本文地址: http://www.cppcns.com/jiaoben/python/284681.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值