Python xmltodict模塊安裝及代碼實例
最近在對接微信公眾號、微信支付等功能,發(fā)現(xiàn)很多都是用xml格式的。在使用django日常處理的時候,都是手動拼接的,真的是很惡心。今天仔細的看了一下python的xmltodict模塊,發(fā)現(xiàn)其實完全可以不用手動拼接,輪子本身都有了。只要那來用就好了。之前自己的方式反而有點傻逼了。
首先使用和安裝都很簡單
安裝
pip install xmltodict #如果安裝失敗,直接去github上下載手動裝吧,https://github.com/martinblech/xmltodict
從名字就知道了 他是一個支持從xml轉(zhuǎn)換到python的dict互相轉(zhuǎn)換的模塊。(真的很方便)
dict轉(zhuǎn)換xml(用的比較多)
這個的使用場景是真的多,比如微信支付各種信息獲取都需要用到。
xmltodict.unparse()方法可以方便的將字典轉(zhuǎn)換為xml字符串。
import xmltodictd = {’xml’:{’a’: ’123’,’b’: ’234’}}xml_tmp = xmltodict.unparse(d)print(xml_tmp)--><?xml version='1.0' encoding='utf-8'?><xml><a>123</a><b>234</b></xml>
看著上面的字典格式也有點奇怪,這里要說明一下,生成xml只能只有一個根,否則會報錯ValueError: Document must have exactly one root.
解決方式也比較簡單,只要將你需要的字典內(nèi)容在嵌套到一個xml的鍵里面,保證字典的第一層只有xml這個鍵即可。
xml轉(zhuǎn)換dict
這個方法用的不多,我目前主要是用在處理回調(diào)解析微信傳給我們的xml數(shù)據(jù)。
xmltodict.parse()將xml轉(zhuǎn)換為字典。
接著上面的例子,繼續(xù)往下吧。
import xmltodictd = {’xml’:{’a’: ’123’,’b’: ’234’}}xml_tmp = xmltodict.unparse(d)print(xml_tmp)#將轉(zhuǎn)換的xml在轉(zhuǎn)換回字典dt = xmltodict.parse(xml_tmp)print(dt,type(dt))--> OrderedDict([(’xml’, OrderedDict([(’a’, ’123’), (’b’, ’234’)]))]) <class ’collections.OrderedDict’>
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
