欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中的xmltodict模塊詳解

 更新時間:2023年07月26日 09:12:44   作者:Looooking  
這篇文章主要介紹了Python中的xmltodict模塊詳解,xmltodict一般我們用 json、yaml 轉換成 dict 可能多一些,xml 轉到 dict 可能用得不多,不過,還是可以來看一看,需要的朋友可以參考下

xmltodict

這好像是第三方依賴包,需要自己用 pip 去進行安裝才可以使用的。

pip3 install xmltodict

至于這個模塊是干什么的,其實看名字就能夠猜到八九不離十。一般我們用 json、yaml 轉換成 dict 可能多一些,xml 轉到 dict 可能用得不多,不過,還是可以來看一看。

xml 字符串解析

 先來個簡單的 xml 瞧一瞧。

<?xml version='1.0' encoding='utf-8'?>
<project>
    <artifact>
        <versionType>BVersion</versionType>
        <repoType>Generic</repoType>
        <id>
            <offering>openEuler</offering>
            <version>openEuler 1.1.T1.B010</version>
        </id>
        <isClear>Y</isClear>
        <copies>
            <copy>
                <source>/dist</source>
                <dest></dest>
            </copy> 
        </copies>
    </artifact>
</project>

解析 xml

import xmltodict
import json
xml_result = open('testdb.xml', 'r')
xml_dict = xmltodict.parse(xml_result.read())
print(type(xml_dict))
json_str = json.dumps(xml_dict, indent=2)
print(json_str)

輸出結果(為了方便好看,我把結果字典字符串轉換成了帶縮進的形式),從下面結果可以看出,其實解析得到的字典是有序字典。

你可能會問為什么是有序字典而不是普通字典呢?

這個當然是為了讓字典的順序和 xml 元素的順序保持一致(畢竟,xml 文件元素順序變化了的話就已經(jīng)不再是原來的那個 xml 文件了)。

<class 'collections.OrderedDict'>
{
  "project": {
    "artifact": {
      "versionType": "BVersion",
      "repoType": "Generic",
      "id": {
        "offering": "openEuler",
        "version": "openEuler 1.1.T1.B010"
      },
      "isClear": "Y",
      "copies": {
        "copy": {
          "source": "/dist",
          "dest": null
        }
      }
    }
  }
}

dict 轉成 xml 字符串

import xmltodict
xml_dict = {
  "project": {
    "artifact": {
      "versionType": "BVersion",
      "repoType": "Generic",
      "id": {
        "offering": "openEuler",
        "version": "openEuler 1.1.T1.B010"
      },
      "isClear": "Y",
      "copies": {
        "copy": {
          "source": "/dist",
          "dest": None
        }
      }
    }
  }
}
xml_str = xmltodict.unparse(xml_dict, pretty=True)
print(xml_str)

輸出結果。

<?xml version="1.0" encoding="utf-8"?>
<project>
	<artifact>
		<versionType>BVersion</versionType>
		<repoType>Generic</repoType>
		<id>
			<offering>openEuler</offering>
			<version>openEuler 1.1.T1.B010</version>
		</id>
		<isClear>Y</isClear>
		<copies>
			<copy>
				<source>/dist</source>
				<dest></dest>
			</copy>
		</copies>
	</artifact>
</project>

到此這篇關于Python中的xmltodict模塊詳解的文章就介紹到這了,更多相關Python中的xmltodict內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論