一、XML -> Dict
1. XML2Dict包
安装:pip install xml2dict
模块解析:通过分析其代码包,可以看到,其在setup.py中设置了encoder和decoder两个模块,安装完成后这两个模块会出现在你的site-packages下。因此,使用时需调用这两个模块,而不是import xml2dict或import XML2Dict,这是无法使用的。模块中,encoder对应XML2Dict,decoder对应Dict2XML。
代码示例:
from encoder import XML2Dict
x = XML2Dict()
xml_str = "" #xml的字符串,不是文件路径
d =x.parse(xml_str)
print(d)
二、Dict -> XML
1. dict2xml包
安装:pip install dict2xml
模块解析:
代码示例:
import dict2xml
from xml.dom.minidom import parseString
def dict_to_xml(dict_in, xml_out):
xml_str = dict2xml.dict2xml(dict_in)
xml_raw = '<?xml version="1.0" encoding="utf-8"?>\n' + '<xml>\n' + xml_str + '\n</xml>'
dom = parseString(xml.replace('\n', '')) #xml_raw中有\n换行,但不美观
pretty = dom.toprettyxml(indent=" ", newl="\n", encoding="utf-8") #bytes
with open(xml_out, 'w') as f:
f.write(pretty.decode("utf-8"))
a = {'aaa':'xxx', 'bbb': 'xxx', 'ccc':['cc1', 'cc2', 'cc3'], 'ddd': {'ddd1':'xxx', 'ddd2': 'xxxxx'}}
dict_to_xml(a, 'res.xml')
2. XML2Dict包
分析:见(一、1)
from decoder import Dict2XML
x = Dict2XML()
d = {} #字典
t = x.parse(d)
print(t)