亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python中xml和dict格式轉(zhuǎn)換的示例代碼

 更新時間:2019年11月07日 09:10:31   作者:颶風(fēng)肆虐的青春  
最近在做APP的接口,遇到XML格式的請求數(shù)據(jù),費了很大勁來解決,下面小編給大家分享下Python中xml和dict格式轉(zhuǎn)換問題,感興趣的朋友跟隨小編一起看看吧

在做接口自動化的時候,請求數(shù)據(jù)之前都是JSON格式的,Python有自帶的包來解決。最近在做APP的接口,遇到XML格式的請求數(shù)據(jù),費了很大勁來解決,解決方式是:接口文檔拿到的是XML,在線轉(zhuǎn)化為json格式(目的是拿到xml數(shù)據(jù)的模板),存放到j(luò)son文件中,根據(jù)接口名去提取。

  • github原文介紹:使用XML的Python模塊感覺就像您在使用JSON
  • 鏈接:https://github.com/martinblech/xmltodict

下載xmltodict(pip install xmltodict)

C:\Users\wy.DESKTOP-KENPKKP\Desktop\Dingda\dingAPI>pip  install xmltodict
Requirement already satisfied: xmltodict in c:\users\wy.desktop-kenpkkp\appdata\local\programs\python\python36\lib\site-packages
 (0.12.0)

直接演示了,準備一個原始的XML的數(shù)據(jù)

<?xml version="1.0"?>
<mydocument has="an attribute">#has是節(jié)點屬性
  <and>
    <many>elements</many>
    <many>more elements</many>
  </and>
  <plus a="complex">
    element as well
  </plus>
</mydocument>

由于目前沒有找到能夠?qū)ML直接賦值給函數(shù)的方法,所以先用在線轉(zhuǎn)化工具將XML轉(zhuǎn)化為JSON,轉(zhuǎn)化后的結(jié)果為

{
 "mydocument": {
  "-has": "an attribute",  #在這里要留意一個事情,XML是有節(jié)點的,節(jié)點有屬性,json數(shù)據(jù)的鍵之前有-的,就是屬性,但是xmltodict識別的屬性是@,所以要把-替換為@(就是這里找了好久)
  "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ù)制運行查看,結(jié)果是原始數(shù)據(jù)
new_dictdata=xmltodict.parse(xmldata,process_namespaces = True)#xml轉(zhuǎn)dict
print(new_dictdata)#在這里有一個注意事項,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模塊就可以完成,但是在自動化測試框架中這樣使用比較麻煩,而且復(fù)用性不好,封裝好如下
#-*- coding: utf-8 -*
#@author 小測試 
#@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é)點
  return: dict字符串
  """
  data=xmltodict.parse(xmldata,process_namespaces = True)
  dictdata=dict(data)
  _dictdata=dict(dictdata[moudle])
  dictdata[moudle]=_dictdata
  return dictdata

總結(jié)

以上所述是小編給大家介紹的Python中xml和dict格式轉(zhuǎn)換的示例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • python按照行來讀取txt文件全部內(nèi)容(去除空行處理掉\t,\n后以列表方式返回)

    python按照行來讀取txt文件全部內(nèi)容(去除空行處理掉\t,\n后以列表方式返回)

    這篇文章主要介紹了python按照行來讀取txt文件全部內(nèi)容 ,去除空行,處理掉\t,\n后,以列表方式返回,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • 用python批量解壓帶密碼的壓縮包

    用python批量解壓帶密碼的壓縮包

    批量解壓縮帶密碼的壓縮包的Python腳本,直接拖入文件夾或壓縮文件即可,支持解壓幾乎所有壓縮文件格式??蓴y帶 Portable
    2021-05-05
  • Python中捕捉詳細異常信息的代碼示例

    Python中捕捉詳細異常信息的代碼示例

    這篇文章主要介紹了Python中捕捉詳細異常信息的代碼示例,本文的代碼是從Python 2.7的源碼中得來,可以獲取文件位置、行號、函數(shù)、異常信息等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • Python GUI之如何使用tkinter控件

    Python GUI之如何使用tkinter控件

    今天帶大家學(xué)習(xí)Python GUI的相關(guān)知識,文中對如何使用tkinter控件作了非常詳細的介紹及代碼示例,對正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • Python字符串中添加、插入特定字符的方法

    Python字符串中添加、插入特定字符的方法

    這篇文章主要介紹了Python字符串中添加、插入特定字符的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • python的類class定義及其初始化方式

    python的類class定義及其初始化方式

    這篇文章主要介紹了python的類class定義及其初始化方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Python實現(xiàn)在某個數(shù)組中查找一個值的算法示例

    Python實現(xiàn)在某個數(shù)組中查找一個值的算法示例

    今天小編就為大家分享一篇Python實現(xiàn)在某個數(shù)組中查找一個值的算法示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python中pygame的mouse鼠標(biāo)事件用法實例

    Python中pygame的mouse鼠標(biāo)事件用法實例

    這篇文章主要介紹了Python中pygame的mouse鼠標(biāo)事件用法,以完整實例形式詳細分析了pygame響應(yīng)鼠標(biāo)事件的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • Python+OpenCV實現(xiàn)實時眼動追蹤的示例代碼

    Python+OpenCV實現(xiàn)實時眼動追蹤的示例代碼

    這篇文章主要介紹了Python+OpenCV實現(xiàn)實時眼動追蹤的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 利用Python實現(xiàn)K-Means聚類的方法實例(案例:用戶分類)

    利用Python實現(xiàn)K-Means聚類的方法實例(案例:用戶分類)

    k-means是發(fā)現(xiàn)給定數(shù)據(jù)集的k個簇的算法,也就是將數(shù)據(jù)集聚合為k類的算法,下面這篇文章主要給大家介紹了關(guān)于利用Python實現(xiàn)K-Means聚類的相關(guān)資料,需要的朋友可以參考下
    2022-05-05

最新評論