Python3 XML与字典Dict之间的相互转化

一、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 = '\n' + '\n' + xml_str + '\n'
    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)

 

 

 

你可能感兴趣的:(Python开发)