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來安裝
pip install xmltodict
可以像下面這樣訪問里面的元素,屬性及值:
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模式適合用來 處理不能放入內(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)文章
python 控制臺(tái)單行刷新,多行刷新實(shí)例
今天小編就為大家分享一篇python 控制臺(tái)單行刷新,多行刷新實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02
Python集成學(xué)習(xí)之Blending算法詳解
集成學(xué)習(xí)(又稱模型融合)就是結(jié)合若干個(gè)體分類器(基學(xué)習(xí)器)進(jìn)行綜合預(yù)測(cè),各個(gè)個(gè)體學(xué)習(xí)器通常是弱學(xué)習(xí)器.集成學(xué)習(xí)相較于個(gè)體學(xué)習(xí)在預(yù)測(cè)準(zhǔn)確率以及穩(wěn)定性上都有很大的提高.文中有非常詳細(xì)的代碼示例哦,需要的朋友可以參考下2021-05-05
Python使用Beautiful Soup爬取豆瓣音樂排行榜過程解析
這篇文章主要介紹了Python使用Beautiful Soup爬取網(wǎng)頁(yè)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
最新PyCharm從安裝到PyCharm永久激活再到PyCharm官方中文漢化詳細(xì)教程
這篇文章涵蓋了最新版PyCharm安裝教程,最新版PyCharm永久激活碼教程,PyCharm官方中文(漢化)版安裝教程圖文并茂非常詳細(xì),需要的朋友可以參考下2020-11-11
使用python+requests+pytest實(shí)現(xiàn)接口自動(dòng)化
這篇文章主要介紹了使用python+requests+pytest實(shí)現(xiàn)接口自動(dòng)化,在當(dāng)前互聯(lián)網(wǎng)產(chǎn)品迭代頻繁的背景下,回歸測(cè)試的時(shí)間越來越少,但接口自動(dòng)化測(cè)試因其實(shí)現(xiàn)簡(jiǎn)單、維護(hù)成本低,容易提高覆蓋率等特點(diǎn),越來越受重視,需要的朋友可以參考下2023-08-08
Python中的list.sort()方法和函數(shù)sorted(list)
這篇文章主要介紹了Python中的list.sort()方法和函數(shù)sorted(list),sort()是列表的方法,修改原列表使得它按照大小排序,沒有返回值,返回None2022-08-08
Python 創(chuàng)建新文件時(shí)避免覆蓋已有的同名文件的解決方法
今天小編就為大家分享一篇Python 創(chuàng)建新文件時(shí)避免覆蓋已有的同名文件的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-11-11

