1. 程式人生 > 程式設計 >Python xmltodict模組安裝及程式碼例項

Python xmltodict模組安裝及程式碼例項

最近在對接微信公眾號、微信支付等功能,發現很多都是用xml格式的。在使用django日常處理的時候,都是手動拼接的,真的是很噁心。今天仔細的看了一下python的xmltodict模組,發現其實完全可以不用手動拼接,輪子本身都有了。只要那來用就好了。之前自己的方式反而有點傻逼了。

首先使用和安裝都很簡單

安裝

pip install xmltodict #如果安裝失敗,直接去github上下載手動裝吧,https://github.com/martinblech/xmltodict

從名字就知道了 他是一個支援從xml轉換到python的dict互相轉換的模組。(真的很方便)

dict轉換xml(用的比較多)


這個的使用場景是真的多,比如微信支付各種資訊獲取都需要用到。

xmltodict.unparse()方法可以方便的將字典轉換為xml字串。

import xmltodict
d = {
'xml':{
'a': '123',
'b': '234'
}
}
xml_tmp = xmltodict.unparse(d)
print(xml_tmp)
--><?xml version="1.0" encoding="utf-8"?><xml><a>123</a>234</xml>

看著上面的字典格式也有點奇怪,這裡要說明一下,生成xml只能只有一個根,否則會報錯ValueError: Document must have exactly one root.

解決方式也比較簡單,只要將你需要的字典內容在巢狀到一個xml的鍵裡面,保證字典的第一層只有xml這個鍵即可。

xml轉換dict

這個方法用的不多,我目前主要是用在處理回撥解析微信傳給我們的xml資料。

xmltodict.parse()將xml轉換為字典。

接著上面的例子,繼續往下吧。

import xmltodict
d = {
'xml':{
'a': '123',
'b': '234'
}
}
xml_tmp = xmltodict.unparse(d)
print(xml_tmp)
#將轉換的xml在轉換回字典
dt = xmltodict.parse(xml_tmp)
print(dt,type(dt))

--> OrderedDict([('xml',OrderedDict([('a','123'),('b','234')]))]) <class 'collections.OrderedDict'>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。