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中的index()方法使用教程
May 18 Python
python Django模板的使用方法
Jan 14 Python
Python实现求解一元二次方程的方法示例
Jun 20 Python
Python交互环境下实现输入代码
Jun 22 Python
利用Python如何批量更新服务器文件
Jul 29 Python
Python 带有参数的装饰器实例代码详解
Dec 06 Python
Django密码系统实现过程详解
Jul 19 Python
django admin 自定义替换change页面模板的方法
Aug 23 Python
关于python中的xpath解析定位
Mar 06 Python
python实现从ftp上下载文件的实例方法
Jul 19 Python
python pillow库的基础使用教程
Jan 13 Python
基于tensorflow权重文件的解读
May 26 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实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
2011/10/09 PHP
浅析SVN常见问题及解决方法
2013/06/21 PHP
PHP多线程编程之管道通信实例分析
2015/03/07 PHP
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
IE6下CSS图片缓存问题解决方法
2010/12/09 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
2014/03/10 Javascript
jQuery分组选择器用法实例
2014/12/23 Javascript
JavaScript基础函数整理汇总
2015/01/30 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
2015/06/01 Javascript
jQuery简单实现验证邮箱格式
2015/07/15 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
JS组件Bootstrap Table使用方法详解
2016/02/02 Javascript
Vue完整项目构建(进阶篇)
2018/02/10 Javascript
如何使node也支持从url加载一个module详解
2018/06/05 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
2020/08/14 Javascript
解决基于 keep-alive 的后台多级路由缓存问题
2020/12/23 Javascript
Python实现建立SSH连接的方法
2015/06/03 Python
Python实现将不规范的英文名字首字母大写
2016/11/15 Python
python3中bytes和string之间的互相转换
2017/02/09 Python
Django实现的自定义访问日志模块示例
2017/06/23 Python
Python使用numpy模块创建数组操作示例
2018/06/20 Python
对pandas处理json数据的方法详解
2019/02/08 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
Python实现Linux监控的方法
2019/05/16 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
Django 开发调试工具 Django-debug-toolbar使用详解
2019/07/23 Python
python django 原生sql 获取数据的例子
2019/08/14 Python
利用setuptools打包python程序的方法步骤
2020/01/18 Python
解决python 执行shell命令无法获取返回值的问题
2020/12/05 Python
新闻专业本科生的自我评价分享
2013/11/20 职场文书
绩效专员岗位职责
2013/12/02 职场文书
写给女生的道歉信
2014/01/08 职场文书
团队精神口号
2014/06/06 职场文书