Python中的xml与dict的转换方法详解

 更新时间:2023年07月26日 10:15:25   作者:go_flush  
这篇文章主要介绍了Python中的xml与dict的转换方法详解,xml 是指可扩展标记语言,一种标记语言类似html,作用是传输数据,而且不是显示数据。可以自定义标签,需要的朋友可以参考下

接口文档拿到的是XML,在线转化为json格式(目的是拿到xml数据的模板),存放到json文件中,根据接口名去提取。

  • xml 是指可扩展标记语言,一种标记语言类似html,作用是传输数据,而且不是显示数据。可以自定义标签。
  • Python 中的xml和dict 互相转化。使用的模块是xmltodict。
import re
import xmltodict
xml="""<notes>
<to>demo</to>
<from>哈哈</from>
<header>呵呵</header>
<body>"尼古拉斯赵四"</body>
</notes>"""
dict = {"goods":{"fruits":{"name":"melon","coloer":"red","nut":"walnut"}}}
class XmlToDict(object):
    def get_dict(self,xml):
        """xml to dict"""
        return xmltodict.parse(xml_input=xml,encoding="utf-8")
    def get_xml_content(self,orderdict):
        for i in orderdict:
            print(orderdict[str(i)])
    def get_content(self,xml):
        first_title = re.match(r"<.*>", xml).group()[1:-1]
        orderdict = self.get_dict(xml)
        orderdict=orderdict[first_title]
        self.get_xml_content(orderdict)
    def dicttoxml(self,dict):
        """dict to xml"""
        return xmltodict.unparse(dict,encoding="utf-8")
if __name__ == '__main__':
    XmlToDict().get_content(xml)
    ret=XmlToDict().dicttoxml(dict)
    print(ret)
  • python 中还有一个模块dicttoxml ,将字典转成xml
mport dicttoxml
dict= {"goods":{"fruits":{"name":"melon","coloer":"red","nut":"walnut"}}}
ret_xml = dicttoxml.dicttoxml(dict,custom_root="Request",root=True).decode("utf-8") # 默认是byte 类型,转成str。
print(type(ret_xml)) 

利用循环字典转成xml

dict = {
    "fruit": "apple",
    "goods": "hamburger"
}
def dicttoxml(iKwargs):
    xml = []
    for k in sorted(iKwargs.keys()):
        v =iKwargs.get(k)
        xml.append("<{key}>{value}</{key}>".format(key=k,value=v))
    return "<xml>{}</xml>".format("".join(xml))
ret=dicttoxml(dict)
print(ret)

上面就是xml和dict转化,如果需要转化json,内置的json模块就可以完成,但是在自动化测试框架中这样使用比较麻烦,而且复用性不好,封装好如下

import xmltodict
"""
xml和dict转换
"""
def dict_xml(dictdata):
    """
    dict转xml
    dictstr: dict字符串
    return: xml字符串
    """
    xmlstr=xmltodict.unparse(dictdata, pretty=True)
    return xmlstr
def xml_dict(xmldata,moudle):
    """
    xml转dict
    xmlstr: xml字符串
    moudle:根节点
    return: dict字符串
    """
    data=xmltodict.parse(xmldata,process_namespaces = True)
    dictdata=dict(data)
    _dictdata=dict(dictdata[moudle])
    dictdata[moudle]=_dictdata
    return dictdata

到此这篇关于Python中的xml与dict的转换方法详解的文章就介绍到这了,更多相关Python中的xml与dict转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Django 限制访问频率的思路详解

    Django 限制访问频率的思路详解

    这篇文章主要介绍了Django 限制访问频率的思路详解,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • PyTorch 如何检查模型梯度是否可导

    PyTorch 如何检查模型梯度是否可导

    这篇文章主要介绍了PyTorch 检查模型梯度是否可导的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • 基于Python实现计算纳什均衡的示例详解

    基于Python实现计算纳什均衡的示例详解

    纳什均衡是一种博弈论中的概念,它描述了一种平衡状态,其中每个参与者都不能通过独立改变其决策来提高自己的利益。本文就来用Python中的Nashpy和PuLP实现计算纳什均衡,感兴趣的可以了解一下
    2023-02-02
  • python通过re正则表达式切割中英文的操作

    python通过re正则表达式切割中英文的操作

    这篇文章主要介绍了python通过re正则表达式切割中英文的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python中reload(module)的用法示例详解

    python中reload(module)的用法示例详解

    与from和import相比,reload是内置函数,而不是语句,下面这篇文章主要给大家介绍了关于python中reload(module)用法的相关资料,文中给出了详细的示例代码供大家参考学习,需要的朋友们下面来一起看看吧。
    2017-09-09
  • 深入浅出Python中三个图像增强库的使用

    深入浅出Python中三个图像增强库的使用

    这篇文章主要带大家了解一下Python中三个图像增强库的使用:Imgaug、Albumentations和SOLT,文中通过示例进行了详细介绍,需要的可以参考一下
    2022-05-05
  • python实现尼姆游戏

    python实现尼姆游戏

    这篇文章通过详细的python代码实现尼姆游戏,小编觉得挺不错的。现在分享给大家,也给大家做个参考,需要的朋友可以收藏下。一起跟随小编过来看看吧
    2021-12-12
  • Python基于Tkinter的HelloWorld入门实例

    Python基于Tkinter的HelloWorld入门实例

    这篇文章主要介绍了Python基于Tkinter的HelloWorld入门实例,以一个简单实例分析了Python中Tkinter模块的使用技巧,需要的朋友可以参考下
    2015-06-06
  • Python中的数据分析详解

    Python中的数据分析详解

    这篇文章主要介绍了Python中的数据分析详解,对数据进行分析,数据分析是指根据分析目的,用适当的统计分析方法及工具,对收集来的数据进行处理与分析,提取有价值的信息,发挥数据的作用,需要的朋友可以参考下
    2023-07-07
  • Python使用ConfigParser解析INI配置文件的完全指南

    Python使用ConfigParser解析INI配置文件的完全指南

    配置文件提供了一种结构化的方式来管理应用程序设置,比单独使用环境变量更有组织性,INI文件采用简单的基于部分的格式,既易于阅读又易于解析,Python内置的configparser模块使处理这些文件变得简单而强大,需要的朋友可以参考下
    2025-10-10

最新评论