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 相关文章推荐
天翼开放平台免费短信验证码接口使用实例
Dec 18 Python
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
Python中的默认参数详解
Jun 24 Python
Python实现随机生成有效手机号码及身份证功能示例
Jun 05 Python
python使用xslt提取网页数据的方法
Feb 23 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
Oct 18 Python
python爬虫超时的处理的实例
Dec 19 Python
使用Python实现文字转语音并生成wav文件的例子
Aug 08 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
Oct 21 Python
python-OpenCV 实现将数组转换成灰度图和彩图
Jan 09 Python
python中count函数简单的实例讲解
Feb 06 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
Aug 07 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
中英文字符串翻转函数
2008/12/09 PHP
PHP获取MAC地址的函数代码
2011/09/11 PHP
php 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
jquery 元素相对定位代码
2010/10/15 Javascript
JS查找英文文章中出现频率最高的单词
2017/03/20 Javascript
JavaScript简单实现关键字文本搜索高亮显示功能示例
2018/07/25 Javascript
vue中el-upload上传图片到七牛的示例代码
2018/10/19 Javascript
深入浅析vue中cross-env的使用
2019/09/12 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
简单理解Python中的装饰器
2015/07/31 Python
python3 与python2 异常处理的区别与联系
2016/06/19 Python
python购物车程序简单代码
2018/04/18 Python
tensorflow实现简单的卷积神经网络
2018/05/24 Python
对Python中DataFrame选择某列值为XX的行实例详解
2019/01/29 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
python返回数组的索引实例
2019/11/28 Python
Python小白垃圾回收机制入门
2020/06/09 Python
完美解决keras保存好的model不能成功加载问题
2020/06/11 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
python 列表推导和生成器表达式的使用
2021/02/01 Python
html5简介及新增功能介绍
2020/05/18 HTML / CSS
美国网上花店:JustFlowers
2017/02/12 全球购物
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
应届生简历中的自我评价
2014/01/13 职场文书
安全资金保障制度
2014/01/23 职场文书
史学专业毕业生求职信
2014/05/09 职场文书
小组口号大全
2014/06/09 职场文书
拆迁委托协议书
2014/09/15 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
学习党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
2015廉洁自律个人总结
2015/02/14 职场文书
高质量“欢迎词”
2019/04/03 职场文书
有关信念的名言语录集锦
2019/12/06 职场文书