Python xmltodict模块安装及代码实例


Posted in Python onOctober 05, 2020

最近在对接微信公众号、微信支付等功能,发现很多都是用xml格式的。在使用django日常处理的时候,都是手动拼接的,真的是很恶心。今天仔细的看了一下python的xmltodict模块,发现其实完全可以不用手动拼接,轮子本身都有了。只要那来用就好了。之前自己的方式反而有点傻逼了。

首先使用和安装都很简单

安装

pip install xmltodict #如果安装失败,直接去github上下载手动装吧,https://github.com/martinblech/xmltodict

从名字就知道了 他是一个支持从xml转换到python的dict互相转换的模块。(真的很方便)

dict转换xml(用的比较多)

这个的使用场景是真的多,比如微信支付各种信息获取都需要用到。

xmltodict.unparse()方法可以方便的将字典转换为xml字符串。

import xmltodict
d = {
'xml':{
'a': '123',
'b': '234'
}
}
xml_tmp = xmltodict.unparse(d)
print(xml_tmp)
--><?xml version="1.0" encoding="utf-8"?><xml><a>123</a><b>234</b></xml>

看着上面的字典格式也有点奇怪,这里要说明一下,生成xml只能只有一个根,否则会报错ValueError: Document must have exactly one root.

解决方式也比较简单,只要将你需要的字典内容在嵌套到一个xml的键里面,保证字典的第一层只有xml这个键即可。

xml转换dict

这个方法用的不多,我目前主要是用在处理回调解析微信传给我们的xml数据。

xmltodict.parse()将xml转换为字典。

接着上面的例子,继续往下吧。

import xmltodict
d = {
'xml':{
'a': '123',
'b': '234'
}
}
xml_tmp = xmltodict.unparse(d)
print(xml_tmp)
#将转换的xml在转换回字典
dt = xmltodict.parse(xml_tmp)
print(dt,type(dt))
--> OrderedDict([('xml', OrderedDict([('a', '123'), ('b', '234')]))]) <class 'collections.OrderedDict'>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现删除Android工程中的冗余字符串
Jan 19 Python
python检测是文件还是目录的方法
Jul 03 Python
python中input()与raw_input()的区别分析
Feb 27 Python
简单谈谈Python中的元祖(Tuple)和字典(Dict)
Apr 21 Python
python实现的AES双向对称加密解密与用法分析
May 02 Python
Python 闭包的使用方法
Sep 07 Python
浅谈Python2获取中文文件名的编码问题
Jan 09 Python
python3中os.path模块下常用的用法总结【推荐】
Sep 16 Python
Python 数据可视化pyecharts的使用详解
Jun 26 Python
pandas计算最大连续间隔的方法
Jul 04 Python
python查找重复图片并删除(图片去重)
Jul 16 Python
Node.js 和 Python之间该选择哪个?
Aug 05 Python
Python pathlib模块使用方法及实例解析
Oct 05 #Python
Python fileinput模块如何逐行读取多个文件
Oct 05 #Python
Python利用Pillow(PIL)库实现验证码图片的全过程
Oct 04 #Python
Python中random模块常用方法的使用教程
Oct 04 #Python
python代数式括号有效性检验示例代码
Oct 04 #Python
关于Python字符编码与二进制不得不说的一些事
Oct 04 #Python
Python实现EM算法实例代码
Oct 04 #Python
You might like
php 文件上传类代码
2011/08/06 PHP
PHP base64编码后解码乱码的解决办法
2014/06/19 PHP
php实现的二叉树遍历算法示例
2017/06/15 PHP
js实现权限树的更新权限时的全选全消功能
2009/02/17 Javascript
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
Nodejs使用mysql模块之获得更新和删除影响的行数的方法
2014/03/18 NodeJs
node.js应用后台守护进程管理器Forever安装和使用实例
2014/06/01 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
2014/08/22 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
vue实现移动端图片裁剪上传功能
2020/08/18 Javascript
浅析node应用的timing-attack安全漏洞
2018/02/28 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
vue js秒转天数小时分钟秒的实例代码
2018/08/08 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
2018/09/07 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
[45:34]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.18
2020/12/19 DOTA
[51:53]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第二场 1月24日
2021/03/11 DOTA
Python程序设计入门(4)模块和包
2014/06/16 Python
Python排序算法实例代码
2017/08/10 Python
Python实现获取本地及远程图片大小的方法示例
2018/07/21 Python
在Python中通过getattr获取对象引用的方法
2019/01/21 Python
pyQt5实时刷新界面的示例
2019/06/25 Python
Python如何使用字符打印照片
2020/01/03 Python
浅谈Django中的QueryDict元素为数组的坑
2020/03/31 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
Python机器学习工具scikit-learn的使用笔记
2021/01/28 Python
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
美国首屈一指的礼品篮供应商:GiftTree
2018/01/06 全球购物
索尼巴西商店:Sony巴西
2019/06/21 全球购物
一份报关员的职业规划范文
2014/01/08 职场文书
篮球赛口号
2014/06/18 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书
关于Spring配置文件加载方式变化引发的异常详解
2022/01/18 Java/Android