博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 的 xmltodict 模块
阅读量:4228 次
发布时间:2019-05-26

本文共 1848 字,大约阅读时间需要 6 分钟。

哈哈,这好像是第三方依赖包,需要自己用 pip 去进行安装才可以使用的。

pip3 install xmltodict

至于这个模块是干什么的,其实看名字就能够猜到八九不离十。一般我们用 json、yaml 转换成 dict 可能多一些,xml 转到 dict 可能用得不多,不过,还是可以来看一看。

xml 字符串解析

 先来个简单的 xml 瞧一瞧。

BVersion
Generic
openEuler
openEuler 1.1.T1.B010
Y
/dist

解析 xml。 

import xmltodictimport jsonxml_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 文件元素顺序变化了的话就已经不再是原来的那个 xml 文件了)。

{ "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 xmltodictxml_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)

输出结果。

BVersion
Generic
openEuler
openEuler 1.1.T1.B010
Y
/dist

 

转载地址:http://xijqi.baihongyu.com/

你可能感兴趣的文章
strtol的用法
查看>>
工作队列的使用
查看>>
让vim显示空格,及tab字符 vim 多行注释
查看>>
利用mmc_test.c研究mmc模块
查看>>
tasklet、wait_queue、completion、work_queue用法总结
查看>>
int (*func(int)) (int *,int)
查看>>
在Ubuntu上下载、编译和安装Android最新内核源代码(Linux Kernel
查看>>
Linux内核同步机制API函数:宏:spin_lock_init ( )
查看>>
driver_register 理解
查看>>
copy_from_user && copy_to_user
查看>>
device_register
查看>>
Android上C++对象的自动回收机制分析
查看>>
从spin_lock到spin_lock_irqsave
查看>>
sdio 驱动
查看>>
T-SQL中的聚合函数中的SUM()函数与AVG函数()
查看>>
T-SQL中的聚合函数(二)
查看>>
分组查询
查看>>
2021-06-04
查看>>
最长无重复子数组
查看>>
Dual-Primal Graph Convolutional Networks 对偶-原始图卷积神经网络
查看>>