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爬虫_城市公交、地铁站点和线路数据采集实例
Jan 10 Python
pandas 空的dataframe 插入列名的示例
Oct 30 Python
Python后台管理员管理前台会员信息的讲解
Jan 28 Python
python实现beta分布概率密度函数的方法
Jul 08 Python
Python适配器模式代码实现解析
Aug 02 Python
PyTorch中Tensor的拼接与拆分的实现
Aug 18 Python
通过字符串导入 Python 模块的方法详解
Oct 27 Python
Python编写memcached启动脚本代码实例
Aug 14 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
Jan 21 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
Jan 30 Python
python 利用 PIL 将数组值转成图片的实现
Apr 12 Python
浅谈Python数学建模之数据导入
Jun 23 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的变量类型和作用域详解
2014/03/12 PHP
php发送邮件的问题详解
2015/06/22 PHP
PHP实现的回溯算法示例
2017/08/15 PHP
Js中sort()方法的用法
2006/11/04 Javascript
『jQuery』取指定url格式及分割函数应用
2013/04/22 Javascript
关于jquery中全局函数each使用介绍
2013/12/10 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
javascript折半查找详解
2015/01/26 Javascript
onclick和onblur冲突问题的快速解决方法
2016/04/28 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
微信小程序实现长按删除图片的示例
2018/05/18 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
2019/06/05 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
2019/10/29 Javascript
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
[48:22]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:14]TI珍贵瞬间系列(六):冠军
2020/08/30 DOTA
Python实现网站文件的全备份和差异备份
2014/11/30 Python
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
git进行版本控制心得详谈
2017/12/10 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
python opencv鼠标事件实现画框圈定目标获取坐标信息
2020/04/18 Python
python mongo 向数据中的数组类型新增数据操作
2020/12/05 Python
Django实现简单的分页功能
2021/02/22 Python
HTML5 常见面试题之PC端和移动端区别介绍
2018/01/22 HTML / CSS
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
Giglio俄罗斯奢侈品购物网:男士、女士、儿童高级时装
2018/07/27 全球购物
计算机应用专业应届毕业生中文求职信范文
2013/11/29 职场文书
会计出纳员的自我评价
2014/01/15 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
党员教师群众路线思想汇报范文
2014/10/28 职场文书
党支部承诺书
2015/01/20 职场文书
vue Element-ui表格实现树形结构表格
2021/06/07 Vue.js