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基于mysql实现的简单队列以及跨进程锁实例详解
Jul 07 Python
Windows下用py2exe将Python程序打包成exe程序的教程
Apr 08 Python
浅谈python中copy和deepcopy中的区别
Oct 23 Python
python+opencv实现动态物体追踪
Jan 09 Python
详解python中的线程
Feb 10 Python
使用pandas读取csv文件的指定列方法
Apr 21 Python
浅析Python与Mongodb数据库之间的操作方法
Jul 01 Python
python+opencv3生成一个自定义纯色图教程
Feb 19 Python
Django框架配置mysql数据库实现过程
Apr 22 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
May 10 Python
python中查看.db文件中表格的名字及表格中的字段操作
Jul 07 Python
分享Python异步爬取知乎热榜
Apr 12 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中使用与Perl兼容的正则表达式
2006/11/26 PHP
10款PHP开源商城系统汇总介绍
2015/07/23 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
关于Laravel Route重定向的一个注意点
2017/01/16 PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
2019/04/15 PHP
javascript 触发事件列表 比较不错
2009/09/03 Javascript
JS脚本defer的作用示例介绍
2014/01/02 Javascript
常规表格多表头查询示例
2014/02/21 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
基于BootStrap的图片轮播效果展示实例代码
2016/05/23 Javascript
Javascript的动态增加类的实现方法
2016/10/20 Javascript
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
js canvas实现放大镜查看图片功能
2017/06/08 Javascript
js图片轮播插件的封装
2017/07/21 Javascript
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
jackson解析json字符串,首字母大写会自动转为小写的方法
2017/12/22 Javascript
vue better scroll 无法滚动的解决方法
2018/06/07 Javascript
vue-cli中vue本地实现跨域调试接口
2019/01/16 Javascript
关于AngularJS中几种Providers的区别总结
2020/05/17 Javascript
[03:03]2014DOTA2国际邀请赛 EG战队专访
2014/07/12 DOTA
python中的多重继承实例讲解
2014/09/28 Python
Python简单实现安全开关文件的两种方式
2016/09/19 Python
python字典多键值及重复键值的使用方法(详解)
2016/10/31 Python
Python使用matplotlib绘制三维图形示例
2018/08/25 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
Python绘制动态水球图过程详解
2020/06/03 Python
拉斯维加斯酒店、演出、旅游、俱乐部及更多:Vegas.com
2019/02/28 全球购物
英国户外装备商店:Ultimate Outdoors
2019/05/07 全球购物
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
校园摄影活动策划方案
2014/02/05 职场文书
医院领导班子整改方案
2014/10/01 职场文书
综合素质评价思想道德自我评价
2015/03/09 职场文书
幼儿园新学期开学寄语
2015/05/27 职场文书
Python基础之教你怎么在M1系统上使用pandas
2021/05/08 Python