Python3将xml文件解析为Python对象
生活随笔
收集整理的這篇文章主要介紹了
Python3将xml文件解析为Python对象
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、說明
從最開始寫javascript開始,我就很煩感使用getElementById()等函數來獲取節點的方法,獲取了一個節點要訪問其子孫節點要么child半天要么就再來一個getElementById(),這是智障嗎?----所以我不喜歡beautiful soup(當然還因為他不支持xpath)。
python的json標準庫可以將json結果直接解析為python對象;python也提供了好幾個標準庫來解析xml,但我不是很明白為什么都是一些不能直接將xml解析為python對象的垃圾庫。
給一堆函數就叫功能強大嗎,這次用了下次又得重新學簡直腦殘。
類似json將xml解析為python對象,可以使用第三方庫untangle或xmltodict實現。
將以下內容保存為xml2obj.xml,后我我們就使用該文件。
<?xml version="1.0"?> <root><title>xml to python obj</title><body><section id="1">section1 content</section><section id="2">section2 content</section></body> </root>二、使用untangle將xml文件解析為python對象
pip install untangle代碼如下:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' import untangle# 將文件解析成對象 obj = untangle.parse('xml2obj.xml')# 獲取<title>標簽內容 obj.root.title.__dict__['cdata']# 獲取第一個section標簽 obj.root.body.section[0]# 獲取第二個section標簽的id obj.root.body.section[1]['id']運行如下:
三、使用xmltodict將xml文件解析為python對象
代碼如下:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' import xmltodict# 將xml文件解析成對象 with open('xml2obj.xml') as fd:dict = xmltodict.parse(fd.read())# 獲取<title>標簽內容 dict['root']['title']# 獲取第一個section標簽 dict['root']['body']['section'][0]# 獲取第二個section標簽的id dict['root']['body']['section'][1]['@id']運行如下:
總結
以上是生活随笔為你收集整理的Python3将xml文件解析为Python对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 错误和异常
- 下一篇: Python3各种进制之间的转换方法