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中pip安装非PyPI官网第三方库的方法
Jun 02 Python
python结合opencv实现人脸检测与跟踪
Jun 08 Python
Python实时获取cmd的输出
Dec 13 Python
Python编程中time模块的一些关键用法解析
Jan 19 Python
python中logging库的使用总结
Oct 18 Python
python爬取拉勾网职位数据的方法
Jan 24 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
Jun 28 Python
Python爬虫实现“盗取”微信好友信息的方法分析
Sep 16 Python
python爬虫模拟浏览器的两种方法实例分析
Dec 09 Python
使用 Python 遍历目录树的方法
Feb 29 Python
PyTorch如何搭建一个简单的网络
Aug 24 Python
Python‘==‘ 及 ‘is‘相关原理解析
Sep 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获取本周开始日期和结束日期的方法
2015/03/09 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
浅谈PHP中的
2016/04/23 PHP
PHP判断数组是否为空的常用方法(五种方法)
2017/02/08 PHP
js静态作用域的功能。
2006/12/25 Javascript
Firefox getBoxObjectFor getBoundingClientRect联系
2008/10/26 Javascript
js 设置选中行的样式的实现代码
2010/05/24 Javascript
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
javascript确认框的三种使用方法
2013/12/17 Javascript
JQuery实现样式设置、追加、移除与切换的方法
2015/06/11 Javascript
浅析node连接数据库(express+mysql)
2015/11/30 Javascript
解决jQuery使用JSONP时产生的错误
2015/12/02 Javascript
常用的Javascript设计模式小结
2015/12/09 Javascript
详谈javascript异步编程
2016/02/21 Javascript
Angular2自定义分页组件
2017/04/19 Javascript
vue2.0中click点击当前li实现动态切换class
2017/06/21 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
浅谈angularJs函数的使用方法(大小写转换,拷贝,扩充对象)
2018/10/08 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
2019/11/01 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
python修改操作系统时间的方法
2015/05/18 Python
Python 的内置字符串方法小结
2016/03/15 Python
删除python pandas.DataFrame 的多重index实例
2018/06/08 Python
Django中自定义查询对象的具体使用
2019/10/13 Python
python实现logistic分类算法代码
2020/02/28 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
马来西亚领先的在线礼品店:Giftr
2018/08/23 全球购物
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
自我鉴定四大框架
2014/01/17 职场文书
单位法定代表人授权委托书
2014/09/20 职场文书
防卫过当辩护词
2015/05/21 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
如何用threejs实现实时多边形折射
2021/05/07 Javascript
Python 多线程处理任务实例
2021/11/07 Python