python中关于xmltodict的使用

 更新时间:2023年03月14日 09:35:34   作者:yasooooo  
这篇文章主要介绍了python中关于xmltodict的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

python中xmltodict使用

xml转换成OrderedDict

代码 :

import xmltodict
from pprint import pprint
 
 
xml = ('''
<mydocument has="an attribute">
    <and>
        <many>elements</many>
        <many>more elements</many>
    </and>
    <plus a="complex" b="hello">
        element as well
    </plus>
</mydocument>
''')
pprint(xmltodict.parse(xml))
print(type(xmltodict.parse(xml)))

运行结果:

可以看到,代码将xml中所有的标签写到了一个OrderedDict中,并且可以运用字典的操作方法去任意取值

dict转换成xml

代码:

# 代码
dict1 = {'Request': {'Body': {'Name': '孙悟空',
                      'Province': '北京',
                      'SettlementFlag': '0001',
             'Head': {'ID': '00000000',
                      'Code': '9999',
                      'No': '15533'}}}}
 
print(xmltodict.unparse(dict1))

运行结果:

xmltodict模块处理xml数据基本用法

xmltodict 是一个用来处理xml数据的很方便的模块。

包含两个常用方法parse和unparse

1. parse

xmltodict.parse()方法可以将xml数据转为python中的dict字典数据:

>>> import xmltodict
>>> xml_str = """
... <xml>
... <ToUserName><![CDATA[gh_866835093fea]]></ToUserName>
... <FromUserName><![CDATA[ogdotwSc_MmEEsJs9-ABZ1QL_4r4]]></FromUserName>
... <CreateTime>1478317060</CreateTime>
... <MsgType><![CDATA[text]]></MsgType>
... <Content><![CDATA[你好]]></Content>
... <MsgId>6349323426230210995</MsgId>
... </xml>
... """
>>>
>>> xml_dict = xmltodict.parse(xml_str)
>>> type(xml_dict)
<class 'collections.OrderedDict'>  # 类字典型,可以按照字典方法操作
>>>
>>> xml_dict
OrderedDict([(u'xml', OrderedDict([(u'ToUserName', u'gh_866835093fea'), (u'FromUserName', u'ogdotwSc_MmEEsJs9-ABZ1QL_4r4'), (u'CreateTime', u'1478317060'), (u'MsgType', u'text'), (u'Content', u'\u4f60\u597d'), (u'MsgId', u'6349323426230210995')]))])
>>>
>>> xml_dict['xml']
OrderedDict([(u'ToUserName', u'gh_866835093fea'), (u'FromUserName', u'ogdotwSc_MmEEsJs9-ABZ1QL_4r4'), (u'CreateTime', u'1478317060'), (u'MsgType', u'text'), (u'Content', u'\u4f60\u597d'), (u'MsgId', u'6349323426230210995')])
>>>
>>> for key, val in xml_dict['xml'].items():
...     print key, "=", val
... 
ToUserName = gh_866835093fea
FromUserName = ogdotwSc_MmEEsJs9-ABZ1QL_4r4
CreateTime = 1478317060
MsgType = text
Content = 你好
MsgId = 6349323426230210995
>>>

2. unparse

xmltodict.unparse()方法可以将字典转换为xml字符串:

xml_dict = {
    "xml": {
        "ToUserName" : "gh_866835093fea",
        "FromUserName" : "ogdotwSc_MmEEsJs9-ABZ1QL_4r4",
        "CreateTime" : "1478317060",
        "MsgType" : "text",
        "Content" : u"你好",
        "MsgId" : "6349323426230210995",
    }
}

>>> xml_str = xmltodict.unparse(xml_dict)
>>> print xml_str
<?xml version="1.0" encoding="utf-8"?>
<xml><FromUserName>ogdotwSc_MmEEsJs9-ABZ1QL_4r4</FromUserName><MsgId>6349323426230210995</MsgId><ToUserName>gh_866835093fea</ToUserName><Content>你好</Content><MsgType>text</MsgType><CreateTime>1478317060</CreateTime></xml>
>>>
>>> xml_str = xmltodict.unparse(xml_dict, pretty=True) # pretty表示友好输出
>>> print xml_str
<?xml version="1.0" encoding="utf-8"?>
<xml>
    <FromUserName>ogdotwSc_MmEEsJs9-ABZ1QL_4r4</FromUserName>
    <MsgId>6349323426230210995</MsgId>
    <ToUserName>gh_866835093fea</ToUserName>
    <Content>你好</Content>
    <MsgType>text</MsgType>
    <CreateTime>1478317060</CreateTime>
</xml>
>>>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python unittest模块用法实例分析

    Python unittest模块用法实例分析

    这篇文章主要介绍了Python unittest模块用法,结合实例形式分析了unittest模块功能及相关函数使用技巧,需要的朋友可以参考下
    2018-05-05
  • Python简明讲解filter函数的用法

    Python简明讲解filter函数的用法

    本文和你一起来探索Python中的filter函数,让你以最短的时间明白这个函数的原理。也可以利用碎片化的时间巩固这个函数,让你在处理工作过程中更高效
    2022-06-06
  • python3发送request请求及查看返回结果实例

    python3发送request请求及查看返回结果实例

    这篇文章主要介绍了python3发送request请求及查看返回结果实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python办公自动化之发送电子邮件和Outlook集成

    Python办公自动化之发送电子邮件和Outlook集成

    Python办公⾃动化是利⽤Python编程语⾔来创建脚本和程序,以简化、加速和⾃动化⽇常办公任务和⼯作流程的过程,本文主要介绍一下如何利用Python实现发送电子邮件和Outlook集成,需要的可以参考下
    2023-12-12
  • Python格式化输出详情

    Python格式化输出详情

    这篇文章介绍了Python格式化输出,主要讲解Python格式化输出的三种方式:%格式化、format格式化、f-String格式化,需要的朋友可以参考下面文章的具体内容
    2021-09-09
  • Python 装饰器常用的创建方式及源码示例解析

    Python 装饰器常用的创建方式及源码示例解析

    装饰器(decorator)是一种高级Python语法,可以对一个函数、方法或者类进行加工,这篇文章主要介绍了Python 装饰器常用的创建方式及解析,需要的朋友可以参考下
    2022-04-04
  • Python运用于数据分析的简单教程

    Python运用于数据分析的简单教程

    这篇文章主要介绍了Python运用于数据分析的简单教程,主要介绍了如何运用Python来进行数据导入、变化、统计和假设检验等基本的数据分析,需要的朋友可以参考下
    2015-03-03
  • Python中TypeError: unhashable type: ‘list‘错误的解决方法

    Python中TypeError: unhashable type: ‘list‘错误的解

    在Python编程的领域中,数据类型的正确使用是确保程序正常运行的关键要素之一,然而,开发者们常常会遇到一些由于数据类型使用不当而引发的报错,其中TypeError: unhashable type: 'list’就是一个比较典型的错误,那么,让我们深入探究这个报错问题,为大家提供全面的解决方案
    2024-10-10
  • python 如何设置守护进程

    python 如何设置守护进程

    这篇文章主要介绍了python 如何设置守护进程,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-10-10
  • python 实现端口扫描工具

    python 实现端口扫描工具

    这篇文章主要介绍了python 实现端口扫描工具的示例代码,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-12-12

最新评论