python中關(guān)于xmltodict的使用
python中xmltodict使用
xml轉(zhuǎn)換成OrderedDict
代碼 :
import xmltodict from pprint import pprint xml = (''' <mydocument has="an attribute"> <and> <many>elements</many> <many>more elements</many> </and> <plus a="complex" b="hello"> element as well </plus> </mydocument> ''') pprint(xmltodict.parse(xml)) print(type(xmltodict.parse(xml)))
運(yùn)行結(jié)果:
可以看到,代碼將xml中所有的標(biāo)簽寫到了一個(gè)OrderedDict中,并且可以運(yùn)用字典的操作方法去任意取值
dict轉(zhuǎn)換成xml
代碼:
# 代碼 dict1 = {'Request': {'Body': {'Name': '孫悟空', 'Province': '北京', 'SettlementFlag': '0001', 'Head': {'ID': '00000000', 'Code': '9999', 'No': '15533'}}}} print(xmltodict.unparse(dict1))
運(yùn)行結(jié)果:
xmltodict模塊處理xml數(shù)據(jù)基本用法
xmltodict 是一個(gè)用來(lái)處理xml數(shù)據(jù)的很方便的模塊。
包含兩個(gè)常用方法parse和unparse
1. parse
xmltodict.parse()方法可以將xml數(shù)據(jù)轉(zhuǎn)為python中的dict字典數(shù)據(jù):
>>> import xmltodict >>> xml_str = """ ... <xml> ... <ToUserName><![CDATA[gh_866835093fea]]></ToUserName> ... <FromUserName><![CDATA[ogdotwSc_MmEEsJs9-ABZ1QL_4r4]]></FromUserName> ... <CreateTime>1478317060</CreateTime> ... <MsgType><![CDATA[text]]></MsgType> ... <Content><![CDATA[你好]]></Content> ... <MsgId>6349323426230210995</MsgId> ... </xml> ... """ >>> >>> xml_dict = xmltodict.parse(xml_str) >>> type(xml_dict) <class 'collections.OrderedDict'> ?# 類字典型,可以按照字典方法操作 >>> >>> xml_dict OrderedDict([(u'xml', OrderedDict([(u'ToUserName', u'gh_866835093fea'), (u'FromUserName', u'ogdotwSc_MmEEsJs9-ABZ1QL_4r4'), (u'CreateTime', u'1478317060'), (u'MsgType', u'text'), (u'Content', u'\u4f60\u597d'), (u'MsgId', u'6349323426230210995')]))]) >>> >>> xml_dict['xml'] OrderedDict([(u'ToUserName', u'gh_866835093fea'), (u'FromUserName', u'ogdotwSc_MmEEsJs9-ABZ1QL_4r4'), (u'CreateTime', u'1478317060'), (u'MsgType', u'text'), (u'Content', u'\u4f60\u597d'), (u'MsgId', u'6349323426230210995')]) >>> >>> for key, val in xml_dict['xml'].items(): ... ? ? print key, "=", val ...? ToUserName = gh_866835093fea FromUserName = ogdotwSc_MmEEsJs9-ABZ1QL_4r4 CreateTime = 1478317060 MsgType = text Content = 你好 MsgId = 6349323426230210995 >>>
2. unparse
xmltodict.unparse()方法可以將字典轉(zhuǎn)換為xml字符串:
xml_dict = { ? ? "xml": { ? ? ? ? "ToUserName" : "gh_866835093fea", ? ? ? ? "FromUserName" : "ogdotwSc_MmEEsJs9-ABZ1QL_4r4", ? ? ? ? "CreateTime" : "1478317060", ? ? ? ? "MsgType" : "text", ? ? ? ? "Content" : u"你好", ? ? ? ? "MsgId" : "6349323426230210995", ? ? } } >>> xml_str = xmltodict.unparse(xml_dict) >>> print xml_str <?xml version="1.0" encoding="utf-8"?> <xml><FromUserName>ogdotwSc_MmEEsJs9-ABZ1QL_4r4</FromUserName><MsgId>6349323426230210995</MsgId><ToUserName>gh_866835093fea</ToUserName><Content>你好</Content><MsgType>text</MsgType><CreateTime>1478317060</CreateTime></xml> >>> >>> xml_str = xmltodict.unparse(xml_dict, pretty=True) # pretty表示友好輸出 >>> print xml_str <?xml version="1.0" encoding="utf-8"?> <xml> ? ? <FromUserName>ogdotwSc_MmEEsJs9-ABZ1QL_4r4</FromUserName> ? ? <MsgId>6349323426230210995</MsgId> ? ? <ToUserName>gh_866835093fea</ToUserName> ? ? <Content>你好</Content> ? ? <MsgType>text</MsgType> ? ? <CreateTime>1478317060</CreateTime> </xml> >>>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python簡(jiǎn)明講解filter函數(shù)的用法
本文和你一起來(lái)探索Python中的filter函數(shù),讓你以最短的時(shí)間明白這個(gè)函數(shù)的原理。也可以利用碎片化的時(shí)間鞏固這個(gè)函數(shù),讓你在處理工作過(guò)程中更高效2022-06-06python3發(fā)送request請(qǐng)求及查看返回結(jié)果實(shí)例
這篇文章主要介紹了python3發(fā)送request請(qǐng)求及查看返回結(jié)果實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04Python辦公自動(dòng)化之發(fā)送電子郵件和Outlook集成
Python辦公?動(dòng)化是利?Python編程語(yǔ)?來(lái)創(chuàng)建腳本和程序,以簡(jiǎn)化、加速和?動(dòng)化?常辦公任務(wù)和?作流程的過(guò)程,本文主要介紹一下如何利用Python實(shí)現(xiàn)發(fā)送電子郵件和Outlook集成,需要的可以參考下2023-12-12Python?裝飾器常用的創(chuàng)建方式及源碼示例解析
裝飾器(decorator)是一種高級(jí)Python語(yǔ)法,可以對(duì)一個(gè)函數(shù)、方法或者類進(jìn)行加工,這篇文章主要介紹了Python?裝飾器常用的創(chuàng)建方式及解析,需要的朋友可以參考下2022-04-04Python運(yùn)用于數(shù)據(jù)分析的簡(jiǎn)單教程
這篇文章主要介紹了Python運(yùn)用于數(shù)據(jù)分析的簡(jiǎn)單教程,主要介紹了如何運(yùn)用Python來(lái)進(jìn)行數(shù)據(jù)導(dǎo)入、變化、統(tǒng)計(jì)和假設(shè)檢驗(yàn)等基本的數(shù)據(jù)分析,需要的朋友可以參考下2015-03-03Python中TypeError: unhashable type: ‘list‘錯(cuò)誤的解
在Python編程的領(lǐng)域中,數(shù)據(jù)類型的正確使用是確保程序正常運(yùn)行的關(guān)鍵要素之一,然而,開發(fā)者們常常會(huì)遇到一些由于數(shù)據(jù)類型使用不當(dāng)而引發(fā)的報(bào)錯(cuò),其中TypeError: unhashable type: 'list’就是一個(gè)比較典型的錯(cuò)誤,那么,讓我們深入探究這個(gè)報(bào)錯(cuò)問(wèn)題,為大家提供全面的解決方案2024-10-10