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通过邮件服务器端口发送邮件的方法
Apr 30 Python
在Django框架中运行Python应用全攻略
Jul 17 Python
Python深入06——python的内存管理详解
Dec 07 Python
Python 高级专用类方法的实例详解
Sep 11 Python
Pandas之drop_duplicates:去除重复项方法
Apr 18 Python
Dlib+OpenCV深度学习人脸识别的方法示例
May 14 Python
详解Matplotlib绘图之属性设置
Aug 23 Python
在Python3 numpy中mean和average的区别详解
Aug 24 Python
Python 转换RGB颜色值的示例代码
Oct 13 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
Feb 15 Python
Python+pyftpdlib实现局域网文件互传
Aug 24 Python
Python爬虫:从m3u8文件里提取小视频的正确操作
May 14 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
MySQL数据源表结构图示
2008/06/05 PHP
PHP 批量更新网页内容实现代码
2010/01/05 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
php利用cookies实现购物车的方法
2014/12/10 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
PHP PDOStatement::bindValue讲解
2019/01/30 PHP
pjblog修改技巧汇总
2007/03/12 Javascript
javascript数组去重方法终极总结
2014/06/05 Javascript
javascript中attachEvent用法实例分析
2015/05/14 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
2015/11/20 Javascript
javascript实现右侧弹出“分享到”窗口效果
2016/02/01 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
详解angular 中的自定义指令之详解API
2017/06/20 Javascript
vue-cli如何引入bootstrap工具的方法
2017/10/19 Javascript
React Native之prop-types进行属性确认详解
2017/12/19 Javascript
JavaScript体验异步更好的解决办法
2018/01/08 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
对vue中methods互相调用的方法详解
2018/08/30 Javascript
javascript实现前端成语点击验证
2020/06/24 Javascript
js实现简单的倒计时
2021/01/28 Javascript
[39:08]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第一场 12.12
2020/12/16 DOTA
Python3爬虫全国地址信息
2019/01/05 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
2019/09/30 Python
如何安装并在pycharm使用selenium的方法
2020/04/30 Python
详解python logging日志传输
2020/07/01 Python
Python 求向量的余弦值操作
2021/03/04 Python
css3实现画半圆弧线的示例代码
2017/11/06 HTML / CSS
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
定制别致的瑜伽垫:Sugarmat
2019/06/21 全球购物
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
超市后勤自我鉴定
2014/01/17 职场文书
医学生自我鉴定范文
2014/03/26 职场文书
2015年人事科工作总结
2015/04/28 职场文书
2016年小学教师师德承诺书
2016/03/25 职场文书
python实现批量提取指定文件夹下同类型文件
2021/04/05 Python
【TED出品】天梯非主流开心游1700 划水骑士
2022/03/31 魔兽争霸