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读写Redis数据库操作示例
Mar 18 Python
Python yield 小结和实例
Apr 25 Python
自己使用总结Python程序代码片段
Jun 02 Python
python制作花瓣网美女图片爬虫
Oct 28 Python
python脚本实现数据导出excel格式的简单方法(推荐)
Dec 30 Python
利用Python将文本中的中英文分离方法
Oct 31 Python
Form表单及django的form表单的补充
Jul 25 Python
pandas中read_csv的缺失值处理方式
Dec 19 Python
Python ini文件常用操作方法解析
Apr 26 Python
Django Admin 上传文件到七牛云的示例代码
Jun 20 Python
Python pandas对excel的操作实现示例
Jul 21 Python
python实现剪贴板的操作
Jul 01 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开发中四种查询返回结果分析
2011/01/02 PHP
PHP版网站缓存加快打开速度的方法分享
2012/06/03 PHP
微博短链接算法php版本实现代码
2012/09/15 PHP
php对二维数组按指定键值key排序示例代码
2013/11/26 PHP
php将远程图片保存到本地服务器的实现代码
2015/08/03 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
PHP实现简单日历类编写
2020/08/28 PHP
js/jquery去掉空格,回车,换行示例代码
2013/11/05 Javascript
JavaScript lastIndexOf方法入门实例(计算指定字符在字符串中最后一次出现的位置)
2014/10/17 Javascript
一款简单的jQuery图片标注效果附源码下载
2016/03/22 Javascript
JS随机打乱数组的方法小结
2016/06/22 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
javascript数组对象常用api函数小结(连接,插入,删除,反转,排序等)
2016/09/20 Javascript
react 实现页面代码分割、按需加载的方法
2018/04/03 Javascript
微信小程序新手教程之启动页的重要性
2019/03/03 Javascript
vue实现购物车功能(商品分类)
2020/04/20 Javascript
几个提升Python运行效率的方法之间的对比
2015/04/03 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
2017/09/20 Python
django输出html内容的实例
2018/05/27 Python
浅析Python四种数据类型
2018/09/26 Python
PyQt5 实现字体大小自适应分辨率的方法
2019/06/18 Python
python判断所输入的任意一个正整数是否为素数的两种方法
2019/06/27 Python
python用for循环求和的方法总结
2019/07/08 Python
python多线程实现TCP服务端
2019/09/03 Python
浅谈django channels 路由误导
2020/05/28 Python
美国一家运动专业鞋类零售商:Warehouse Shoe Sale(WSS)
2018/03/28 全球购物
爱国主义教育活动总结
2014/05/07 职场文书
2014年物流工作总结
2014/11/25 职场文书
教师听课评语大全
2014/12/31 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
2016年“5.12”国际护士节活动总结
2016/04/06 职场文书
选择比努力更重要?这是长期以来对“努力”的最大误解
2019/07/12 职场文书
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python
MySQL修炼之联结与集合浅析
2021/10/05 MySQL
win server2012 r2服务器共享文件夹如何设置
2022/06/21 Servers