Python數(shù)據(jù)存儲之XML文檔和字典的互轉(zhuǎn)
更新時間:2022年06月13日 10:09:31 作者:? 孤寒者? ?
這篇文章主要介紹了Python數(shù)據(jù)存儲之XML文檔和字典的互轉(zhuǎn),通過如何將一個字典轉(zhuǎn)換為XML文檔,并將該XML文檔保存為文本文件的提問展開主題相關(guān)介紹,需要的朋友可以參考一下下面文章內(nèi)容
考點:
- 將字典轉(zhuǎn)換為XML文檔;
- 將XML文檔轉(zhuǎn)換為字典。
面試題
- 1.面試題一:如何將一個字典轉(zhuǎn)換為XML文檔,并將該XML文檔保存為文本文件。
- 2.面試題二:如何讀取XML文件的內(nèi)容,并將其轉(zhuǎn)換為字典。
解析
如何將一個字典轉(zhuǎn)換為XML文檔,并將該XML文檔保存為文本文件:
這里需要用到第三方庫:dicttoxml。需要安裝一下
# coding=utf-8 import dicttoxml from xml.dom.minidom import parseString d = [20, 'name', {'name':'xiaohong', 'age':30, 'salary':500}, {'name':'honghong', 'age':34, 'salary':2050}, {'name':'lihua', 'age':10, 'salary':1200}, ] bxml = dicttoxml.dicttoxml(d, custom_root='persons') # 注意:此時返回值是二進制類型,所以需要解碼哦~ xml = bxml.decode('utf-8') print(xml) print("---"*25) # 美觀格式 dom = parseString(xml) prettyxml = dom.toprettyxml(indent=' ') print(prettyxml) # 保存 with open('persons1.xml', 'w', encoding='utf-8') as f: f.write(prettyxml)
面試題二 之 如何讀取XML文件的內(nèi)容,并將其轉(zhuǎn)換為字典:
- 這里需要用到第三方庫:xmltodict。需要安裝一下哦~
- 供我們讀取的XML文件是products.xml,文件內(nèi)容如下:
<!-- products.xml --> <root> <products> <product uuid='1234'> <id>10000</id> <name>蘋果</name> <price>99999</price> </product> <product uuid='1235'> <id>10001</id> <name>小米</name> <price>999</price> </product> <product uuid='1236'> <id>10002</id> <name>華為</name> <price>9999</price> </product> </products> </root>
# coding=utf-8 import xmltodict with open('products.xml', 'rt', encoding='utf-8') as f: xml = f.read() d = xmltodict.parse(xml) print(d) print("---" * 25) print(type(d)) # 輸出為:<class 'collections.OrderedDict'> # 說明此時已經(jīng)轉(zhuǎn)為字典(排序字典)~ print("---"*25) # 美觀格式 import pprint dd = pprint.PrettyPrinter(indent=4) dd.pprint(d)
總結(jié)
需要兩個第三方模塊(需安裝):
- dicttoxml用于將字典轉(zhuǎn)換為XML文檔;
- xmltodict用于將XML文檔轉(zhuǎn)換為字典。
到此這篇關(guān)于Python數(shù)據(jù)存儲之XML文檔和字典的互轉(zhuǎn)的文章就介紹到這了,更多相關(guān)Python XML文檔字典互轉(zhuǎn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解JavaScript編程中的window與window.screen對象
這篇文章主要介紹了JavaScript編程中的window與window.screen對象,是JS在瀏覽器中視圖編程的基礎,需要的朋友可以參考下2015-10-10