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 相关文章推荐
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
Nov 18 Python
python简单实现基于SSL的IRC bot实例
Jun 15 Python
Python编程中使用Pillow来处理图像的基础教程
Nov 20 Python
python中正则的使用指南
Dec 04 Python
详解python中的文件与目录操作
Jul 11 Python
django session完成状态保持的方法
Nov 27 Python
python 为什么说eval要慎用
Mar 26 Python
Python 转换RGB颜色值的示例代码
Oct 13 Python
python 实现兔子生兔子示例
Nov 21 Python
Python 矩阵转置的几种方法小结
Dec 02 Python
spyder 在控制台(console)执行python文件,debug python程序方式
Apr 20 Python
Python Matplotlib库实现画局部图
Nov 17 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 无法加载mcrypt.dll的解决办法
2013/04/03 PHP
使用PHPExcel操作Excel用法实例分析
2015/03/26 PHP
php实现的用户查询类实例
2015/06/18 PHP
PHP正则获取页面所有图片地址
2016/03/23 PHP
PHP创建多级目录的两种方法
2016/10/28 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
javascript得到XML某节点的子节点个数的脚本
2008/10/11 Javascript
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
2009/05/25 Javascript
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
基于JQuery的类似新浪微博展示信息效果的代码
2012/07/23 Javascript
Javascript根据指定下标或对象删除数组元素
2012/12/21 Javascript
jQuery :first选择器使用介绍
2013/08/09 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
JS实现的简洁二级导航菜单雏形效果
2015/10/13 Javascript
浅谈javascript中遇到的字符串对象处理
2016/11/18 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
JS实现中文汉字按拼音排序的方法
2017/10/09 Javascript
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
一文看懂如何简单实现节流函数和防抖函数
2019/09/05 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
virtualenv 指定 python 解释器的版本方法
2018/10/25 Python
python多线程同步之文件读写控制
2021/02/25 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
django 多数据库及分库实现方式
2020/04/01 Python
Eclipse配置python默认头过程图解
2020/04/26 Python
Python 列表中的修改、添加和删除元素的实现
2020/06/11 Python
html5 拖拽及用 js 实现拖拽功能的示例代码
2020/10/23 HTML / CSS
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
商场中秋节活动方案
2014/02/07 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
2014物价局群众路线对照检查材料思想汇报
2014/09/21 职场文书
文明单位申报材料
2014/12/23 职场文书
公司员工体检通知
2015/04/21 职场文书
Django框架之路由用法
2022/06/10 Python