python 嵌套字典转xml

本来使用dicttoxml模块直接可以将字典转为xml结构,但是这个模块处理效率比较低,不能满足公司的生产需求。后来结合遍历多层嵌套字典,和xml.etree.ElementTree模块dict to xml的功能,写了下面代码

from xml.etree.ElementTree import Element,tostring

def toxml(doc,element):
	if isinstance(doc, dict):
		for key in doc:
			child = Element(key) 
			item = doc[key]
			child = toxml(item,child) #循环遍历多层字典
			element.append(child)   

	else:
		element.text=str(doc)  #值
	return element

测试代码:

    s =  {
		'a':{
			'a1':{
				'a12':'A12'
			},
			'a2':'',
			'a3':{
				'a31':'A1'
			},
			'a4':3232
		},
		'b':{
			'b1':'aaaa',
			'b2':{
				'b21':'bbbbb'
			}
		}
	}
	element = Element('root')
	xml=toxml(s, element)
	print(xml)
	x=tostring(xml)
	print(x)

输出结果

<Element 'root' at 0x000001D3D679AC78>
b'<root><a><a1><a12>A12</a12></a1><a2 /><a3><a31>A1</a31></a3><a4>3232</a4></a><b><b1>aaaa</b1><b2><b21>bbbbb</b21></b2></b></root>'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值