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模拟登陆类
Mar 29 Python
给Python初学者的一些编程技巧
Apr 03 Python
Python脚本实现自动将数据库备份到 Dropbox
Feb 06 Python
python 中split 和 strip的实例详解
Jul 12 Python
使用Python制作微信跳一跳辅助
Jan 31 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
Oct 14 Python
Django REST框架创建一个简单的Api实例讲解
Nov 05 Python
python numpy数组中的复制知识解析
Feb 03 Python
部署Django到阿里云服务器教程示例
Jun 03 Python
keras的backend 设置 tensorflow,theano操作
Jun 30 Python
利用Python优雅的登录校园网
Oct 21 Python
python中append函数用法讲解
Dec 11 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版(2)
2006/10/09 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
PHP实现的构造sql语句类实例
2016/02/03 PHP
php实现生成验证码实例分享
2016/04/10 PHP
ThinkPHP5框架实现简单的批量查询功能示例
2018/06/07 PHP
php解决安全问题的方法实例
2019/09/19 PHP
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
javascript时间函数基础介绍
2013/03/28 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
javascript背景时钟实现方法
2015/06/18 Javascript
深入理解逻辑表达式的用法 与或非的用法
2016/06/06 Javascript
node.js中module.exports与exports用法上的区别
2016/09/02 Javascript
利用jQuery实现打字机字幕效果实例代码
2016/09/02 Javascript
JavaScript中定义对象原型的两种使用方法
2016/12/15 Javascript
微信小程序 登录实例详解
2017/01/16 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
2017/03/21 Javascript
Node.js编写CLI的实例详解
2017/05/17 Javascript
Angular.js中angular-ui-router的简单实践
2017/07/18 Javascript
jquery radio 动态控制选中失效问题的解决方法
2018/02/28 jQuery
对vux点击事件的优化详解
2018/08/28 Javascript
JS实现可视化音频效果的实例代码
2020/01/16 Javascript
详解vue中v-on事件监听指令的基本用法
2020/07/22 Javascript
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
Python多线程爬虫实战_爬取糗事百科段子的实例
2017/12/15 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
CSS3 创建网页动画实现弹跳球动效果
2018/10/30 HTML / CSS
绘儿乐产品官方在线商店:Crayola.com
2019/09/07 全球购物
创建索引时需要注意的事项
2013/05/13 面试题
校园门卫岗位职责
2013/12/09 职场文书
计生专干事迹
2014/05/28 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
单位病假条范文
2015/08/17 职场文书
《家》读后感:万惜拯救,冷暖自知
2019/09/25 职场文书
Win10防火墙白名单怎么设置?Win10添加防火墙白名单方法
2022/04/06 数码科技
Nginx安装配置详解
2022/06/25 Servers