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获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
python  Django中的apps.py的目的是什么
Oct 15 Python
Python多线程应用于自动化测试操作示例
Dec 06 Python
Django框架使用mysql视图操作示例
May 15 Python
Django对数据库进行添加与更新的例子
Jul 12 Python
Django之路由层的实现
Sep 09 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
Feb 25 Python
Python 如何展开嵌套的序列
Aug 01 Python
基于python tkinter的点名小程序功能的实例代码
Aug 22 Python
Python基于Socket实现简易多人聊天室的示例代码
Nov 29 Python
Python快速优雅的批量修改Word文档样式
May 20 Python
浅谈怎么给Python添加类型标注
Jun 08 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
LotusPhp笔记之:Cookie组件的使用详解
2013/05/06 PHP
php inc文件使用的风险和注意事项
2013/11/12 PHP
PHP高手需要要掌握的知识点
2014/08/21 PHP
php操作xml并将其插入数据库的实现方法
2016/09/08 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
PHP中的empty、isset、isnull的区别与使用实例
2019/03/22 PHP
jquery CSS选择器笔记
2010/03/29 Javascript
nodejs入门详解(多篇文章结合)
2012/03/07 NodeJs
Express.JS使用详解
2014/07/17 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
2015/04/06 Javascript
学习JavaScript正则表达式
2015/11/13 Javascript
javascript实现下雪效果【实例代码】
2016/05/03 Javascript
JS表格组件神器bootstrap table详解(强化版)
2016/05/26 Javascript
jQuery ajaxForm()的应用
2016/10/14 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
JavaScript基础教程之如何实现一个简单的promise
2018/09/11 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
JS获取一个字符串中指定字符串第n次出现的位置
2021/02/10 Javascript
[59:00]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第一场 3月7日
2021/03/11 DOTA
利用Python开发实现简单的记事本
2016/11/15 Python
Python冲顶大会 快来答题!
2018/01/17 Python
python操作文件的参数整理
2019/06/11 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
KIKO MILANO英国官网:意大利知名化妆品和护肤品品牌
2017/09/25 全球购物
Python面试题:Python里面如何生成随机数
2015/03/12 面试题
什么是继承
2013/12/07 面试题
教育专业个人求职信
2013/12/02 职场文书
优秀求职自荐信怎样写
2013/12/18 职场文书
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
教师党员自我剖析材料
2014/09/29 职场文书
2014村书记党建工作汇报材料
2014/11/02 职场文书
保研专家推荐信范文
2015/03/25 职场文书
不同意离婚上诉状
2015/05/23 职场文书
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL