Python中xmltodict對(duì)xml的操作方式
Python xmltodict對(duì)xml的操作
xmltodict是另一個(gè)簡(jiǎn)易的庫(kù),它致力于將XML變得像JSON.
下面是一個(gè)簡(jiǎn)單的示例XML文件:
<?xml version="1.0"?> <mydocument has="an attribute"> ? ? <and> ? ? ? ? <many>elements</many> ? ? ? ? <many>more elements</many> ? ? </and> ? ? <plus a="complex"> ? ? ? ? element as well ? ? </plus> </mydocument>
這是第三方包,在處理前先用pip來(lái)安裝
pip install xmltodict
可以像下面這樣訪問(wèn)里面的元素,屬性及值:
import xmltodict ? with open("test.xml") as fd: ? ? ? ? ?# 將XML文件裝載到dict里面 ? ? doc = xmltodict.parse(fd.read()) ? ? print(doc["mydocument"]["@has"]) ?# an attribute ? ? print(doc["mydocument"]["and"]) ? # OrderedDict([(u'many', [u'elements', u'more elements'])]) ? ? print(doc["mydocument"]["and"]["many"]) ? # [u'elements', u'more elements'] ? ? print(doc["mydocument"]["plus"]["@a"]) ? ?# complex ? ? print(doc["mydocument"]["plus"]["#text"]) # element as well xmltodict 也有unparse函數(shù)讓您可以轉(zhuǎn)回XML。
該函數(shù)有一個(gè)streaming模式適合用來(lái) 處理不能放入內(nèi)存的文件,它還支持命名空間
Python XML解析,xmltodict模塊
安裝xmltodict: pip3 install xmltodict
demo.py(xml字符串解析成類字典):
# coding:utf-8 import xmltodict ? # 導(dǎo)入 ? # XML格式字符串 xml_str = """ ? ? ? ? <xml> ? ? ? ? ? ? <Name>張三</Name> ? ? ? ? ? ? <age>18</age> ? ? ? ? </xml> ? ? ? ? """ ? ? xml_dict = xmltodict.parse(xml_str) ? # 解析xml字符串 ? print(type(xml_dict)) ?# <class 'collections.OrderedDict'> ?類字典型,可以按照字典方法操作 ? print xml_dict ? # 遍歷 for key, val in xml_dict['xml'].items(): ? ? print key, "---", val
demo.py(字典轉(zhuǎn)成xml字符串):
# coding:utf-8 import xmltodict ? # 導(dǎo)入 ? # 字典 xml_dict = { ? ? ? ? ? ? ? ? "xml": { ? ? ? ? ? ? ? ? ? ? "name" : u"張三", ? ? ? ? ? ? ? ? ? ? "age" : 18 ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? # 字典轉(zhuǎn)換成XML字符串 # xml_str = xmltodict.unparse(xml_dict) xml_str = xmltodict.unparse(xml_dict, pretty=True) ?# pretty表示友好輸出(有換行) ? print(xml_str)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python3實(shí)現(xiàn)統(tǒng)計(jì)單詞表中每個(gè)字母出現(xiàn)頻率的方法示例
這篇文章主要介紹了Python3實(shí)現(xiàn)統(tǒng)計(jì)單詞表中每個(gè)字母出現(xiàn)頻率的方法,涉及Python針對(duì)文件的讀取、遍歷、統(tǒng)計(jì)等相關(guān)操作技巧,需要的朋友可以參考下2019-01-01selenium中常見(jiàn)的表單元素操作方法總結(jié)
Selenium可以驅(qū)動(dòng)瀏覽器來(lái)執(zhí)行一些操作,也就是說(shuō)可以讓瀏覽器模擬執(zhí)行一些動(dòng)作,下面這篇文章主要給大家介紹了關(guān)于selenium中常見(jiàn)的表單元素操作方法,需要的朋友可以參考下2022-02-02pip已經(jīng)安裝好第三方庫(kù)但pycharm中import時(shí)還是標(biāo)紅的解決方案
這篇文章主要介紹了python中pip已經(jīng)安裝好第三方庫(kù)但pycharm中import時(shí)還是標(biāo)紅的問(wèn)題,本文給大家分享解決方法,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10opencv3/python 鼠標(biāo)響應(yīng)操作詳解
今天小編就為大家分享一篇opencv3/python 鼠標(biāo)響應(yīng)操作詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12Python利用裝飾器實(shí)現(xiàn)類似于flask路由
這篇文章主要為大家詳細(xì)介紹了Python如何利用裝飾器實(shí)現(xiàn)類似于flask路由,文中的示例代碼講解詳細(xì),對(duì)我們深入了解Python有一點(diǎn)的幫助,感興趣的可以了解一下2023-02-02Python使用設(shè)計(jì)模式中的責(zé)任鏈模式與迭代器模式的示例
這篇文章主要介紹了Python使用設(shè)計(jì)模式中的責(zé)任鏈模式與迭代器模式的示例,責(zé)任鏈模式與迭代器模式都可以被看作為行為型的設(shè)計(jì)模式,需要的朋友可以參考下2016-03-03jupyter lab的目錄調(diào)整及設(shè)置默認(rèn)瀏覽器為chrome的方法
這篇文章主要介紹了jupyter lab的目錄調(diào)整及設(shè)置默認(rèn)瀏覽器為chrome的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04