您好,登錄后才能下訂單哦!
本文章向大家介紹利用Python怎么將xml和dict格式進(jìn)行轉(zhuǎn)換的基本知識(shí)點(diǎn)總結(jié)和需要注意事項(xiàng),具有一定的參考價(jià)值,需要的朋友可以參考一下。
Python是一種編程語(yǔ)言,內(nèi)置了許多有效的工具,Python幾乎無(wú)所不能,該語(yǔ)言通俗易懂、容易入門(mén)、功能強(qiáng)大,在許多領(lǐng)域中都有廣泛的應(yīng)用,例如最熱門(mén)的大數(shù)據(jù)分析,人工智能,Web開(kāi)發(fā)等。
<?xml version="1.0"?> <mydocument has="an attribute">#has是節(jié)點(diǎn)屬性 <and> <many>elements</many> <many>more elements</many> </and> <plus a="complex"> element as well </plus> </mydocument>
由于目前沒(méi)有找到能夠?qū)ML直接賦值給函數(shù)的方法,所以先用在線轉(zhuǎn)化工具將XML轉(zhuǎn)化為JSON,轉(zhuǎn)化后的結(jié)果為
{ "mydocument": { "-has": "an attribute", #在這里要留意一個(gè)事情,XML是有節(jié)點(diǎn)的,節(jié)點(diǎn)有屬性,json數(shù)據(jù)的鍵之前有-的,就是屬性,但是xmltodict識(shí)別的屬性是@,所以要把-替換為@(就是這里找了好久) "and": { "many": [ "elements", "more elements" ] }, "plus": { "-a": "complex", "#text": " element as well " } } }
示例代碼
dictdata={ "mydocument": { "@has": "an attribute", "and": { "many": [ "elements", "more elements" ] }, "plus": { "@a": "complex", "#text": "element as well" } } } xmldata=xmltodict.unparse(dictdata,pretty=True)#dict轉(zhuǎn)xml print(xmldata)#解析結(jié)果可以復(fù)制運(yùn)行查看,結(jié)果是原始數(shù)據(jù) new_dictdata=xmltodict.parse(xmldata,process_namespaces = True)#xml轉(zhuǎn)dict print(new_dictdata)#在這里有一個(gè)注意事項(xiàng),new_dictdata的數(shù)據(jù)格式是<class 'collections.OrderedDict'>,并不直接是dict,需要自行處理 """ 處理方式如下 """ key_dictdata=dict(new_dictdata) value_dictdata=dict(dict(new_dictdata)["mydocument"]) key_dictdata["mydocument"]=value_dictdata print(key_dictdata) 上面就是xml和dict轉(zhuǎn)化,如果需要轉(zhuǎn)化json,內(nèi)置的json模塊就可以完成,但是在自動(dòng)化測(cè)試框架中這樣使用比較麻煩,而且復(fù)用性不好,封裝好如下 #-*- coding: utf-8 -* #@author 小測(cè)試 #@create 2019-10-30 15:46 import xmltodict """ xml和dict轉(zhuǎn)換 """ def dict_xml(dictdata): """ dict轉(zhuǎn)xml dictstr: dict字符串 return: xml字符串 """ xmlstr=xmltodict.unparse(dictdata, pretty=True) return xmlstr def xml_dict(xmldata,moudle): """ xml轉(zhuǎn)dict xmlstr: xml字符串 moudle:根節(jié)點(diǎn) return: dict字符串 """ data=xmltodict.parse(xmldata,process_namespaces = True) dictdata=dict(data) _dictdata=dict(dictdata[moudle]) dictdata[moudle]=_dictdata return dictdata
以上就是小編為大家?guī)?lái)的利用Python怎么將xml和dict格式進(jìn)行轉(zhuǎn)換的全部?jī)?nèi)容了,希望大家多多支持億速云!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。