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批量制作雷达图的实现方法
Jul 26 Python
详解Python在七牛云平台的应用(一)
Dec 05 Python
Python即时网络爬虫项目启动说明详解
Feb 23 Python
Python二叉树的镜像转换实现方法示例
Mar 06 Python
Python面向对象程序设计类的封装与继承用法示例
Apr 12 Python
python递归法实现简易连连看小游戏
Mar 25 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
Aug 27 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
Oct 25 Python
pytorch实现mnist分类的示例讲解
Jan 10 Python
python的pip有什么用
Jun 17 Python
浅析Python 责任链设计模式
Sep 11 Python
python基础入门之字典和集合
Jun 13 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.ini中的php-5.2.0配置指令详解
2008/03/27 PHP
php笔记之:php函数range() round()和list()的使用说明
2013/04/26 PHP
php/js获取客户端mac地址的实现代码
2013/07/08 PHP
使用php判断服务器是否支持Gzip压缩功能
2013/09/24 PHP
PHPer 需要了解的 5 个 Composer 小技巧
2014/08/18 PHP
PHP比你想象的好得多
2014/11/27 PHP
PHP实现对二维数组某个键排序的方法
2016/09/14 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
2019/09/11 PHP
一个cssQuery对象 javascript脚本实现代码
2009/07/21 Javascript
JS实现的自定义网页拖动类
2015/11/06 Javascript
springMVC结合AjaxForm上传文件
2016/07/12 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
新入门node.js必须要知道的概念(必看篇)
2016/08/10 Javascript
微信小程序实现给循环列表添加点击样式实例
2017/04/26 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
vue样式穿透 ::v-deep的具体使用
2020/06/04 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
python实现多线程采集的2个代码例子
2014/07/07 Python
在DigitalOcean的服务器上部署flaskblog应用
2015/12/19 Python
python利用标准库如何获取本地IP示例详解
2017/11/01 Python
Python语言描述随机梯度下降法
2018/01/04 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
Python os库常用操作代码汇总
2020/11/03 Python
英国著名书店:Foyles
2018/12/01 全球购物
全球领先的中国制造商品在线批发平台:DHgate
2020/01/28 全球购物
Envie de Fraise意大利:法国网上推出的孕妇装品牌
2020/10/18 全球购物
函授生自我鉴定
2014/03/25 职场文书
2015年小学教导处工作总结
2015/05/26 职场文书
MySQL控制流函数(-if ,elseif,else,case...when)
2022/07/07 MySQL