Python数据存储之XML文档和字典的互转

 更新时间:2022年06月13日 10:09:31   作者:​ 孤寒者   ​  
这篇文章主要介绍了Python数据存储之XML文档和字典的互转,通过如何将一个字典转换为XML文档,并将该XML文档保存为文本文件的提问展开主题相关介绍,需要的朋友可以参考一下下面文章内容

考点:

  • 将字典转换为XML文档;
  • 将XML文档转换为字典。

面试题

  • 1.面试题一:如何将一个字典转换为XML文档,并将该XML文档保存为文本文件。
  • 2.面试题二:如何读取XML文件的内容,并将其转换为字典。

解析

如何将一个字典转换为XML文档,并将该XML文档保存为文本文件:

这里需要用到第三方库:dicttoxml。需要安装一下

# coding=utf-8
import dicttoxml
from xml.dom.minidom import parseString

d = [20, 'name', {'name':'xiaohong', 'age':30, 'salary':500},
                 {'name':'honghong', 'age':34, 'salary':2050},
                 {'name':'lihua',    'age':10, 'salary':1200},
    ]

bxml = dicttoxml.dicttoxml(d, custom_root='persons')    # 注意:此时返回值是二进制类型,所以需要解码哦~
xml = bxml.decode('utf-8')
print(xml)

print("---"*25)
# 美观格式
dom = parseString(xml)
prettyxml = dom.toprettyxml(indent='  ')
print(prettyxml)

# 保存
with open('persons1.xml', 'w', encoding='utf-8') as f:
    f.write(prettyxml)

面试题二 之 如何读取XML文件的内容,并将其转换为字典:

  • 这里需要用到第三方库:xmltodict。需要安装一下哦~
  • 供我们读取的XML文件是products.xml,文件内容如下:
<!-- products.xml -->
<root>
    <products>
        <product uuid='1234'>
            <id>10000</id>
            <name>苹果</name>
            <price>99999</price>
        </product>
        <product uuid='1235'>
            <id>10001</id>
            <name>小米</name>
            <price>999</price>
        </product>
        <product uuid='1236'>
            <id>10002</id>
            <name>华为</name>
            <price>9999</price>
        </product>
    </products>
</root>
# coding=utf-8
import xmltodict

with open('products.xml', 'rt', encoding='utf-8') as f:
    xml = f.read()
    d = xmltodict.parse(xml)
    print(d)

    print("---" * 25)

    print(type(d))      # 输出为:<class 'collections.OrderedDict'>
                        # 说明此时已经转为字典(排序字典)~
    print("---"*25)
    # 美观格式
    import pprint
    dd = pprint.PrettyPrinter(indent=4)
    dd.pprint(d)

总结

需要两个第三方模块(需安装):

  • dicttoxml用于将字典转换为XML文档;
  • xmltodict用于将XML文档转换为字典。

到此这篇关于Python数据存储之XML文档和字典的互转的文章就介绍到这了,更多相关Python XML文档字典互转内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • urllib2自定义opener详解

    urllib2自定义opener详解

    这篇文章主要介绍了urllib2自定义opener详解,需要的朋友可以参考下
    2014-02-02
  • Python图像处理之膨胀与腐蚀的操作

    Python图像处理之膨胀与腐蚀的操作

    这篇文章主要介绍了Python图像处理之膨胀与腐蚀的操作,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • 详解JavaScript编程中的window与window.screen对象

    详解JavaScript编程中的window与window.screen对象

    这篇文章主要介绍了JavaScript编程中的window与window.screen对象,是JS在浏览器中视图编程的基础,需要的朋友可以参考下
    2015-10-10
  • Python爬虫爬取ts碎片视频+验证码登录功能

    Python爬虫爬取ts碎片视频+验证码登录功能

    这篇文章主要介绍了Python爬虫爬取ts碎片视频+验证码登录功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • PyTorch实现多维度特征输入逻辑回归

    PyTorch实现多维度特征输入逻辑回归

    这篇文章主要介绍了PyTorch实现多维度特征输入逻辑回归,首先进行数据采取数据集展开详细内容,需要的小伙伴可以参考一下
    2022-03-03
  • 分享6 个值得收藏的 Python 代码

    分享6 个值得收藏的 Python 代码

    这篇文章主要分享了6 个值得收藏的 Python 代码,希望队长正在学习的你有所帮助,需要的小伙伴也可以参考一下
    2022-01-01
  • Python实现将字符串的首字母变为大写,其余都变为小写的方法

    Python实现将字符串的首字母变为大写,其余都变为小写的方法

    今天小编就为大家分享一篇Python实现将字符串的首字母变为大写,其余都变为小写的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python详解复杂CSV文件处理方法

    Python详解复杂CSV文件处理方法

    这篇文章主要介绍了Python数据读写之Python读写CSV文件,CSV即逗号分隔值,一种以逗号分隔按行存储的文本文件,所有的值都表现为字符串类型,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-07-07
  • Python 制作自动化翻译工具

    Python 制作自动化翻译工具

    这篇文章主要介绍了Python 实现自动化翻译和替换的脚本,帮助大家更好的理解和学习使用python,提高办公效率感兴趣的朋友可以了解下
    2021-04-04
  • Python作用域与名字空间原理详解

    Python作用域与名字空间原理详解

    这篇文章主要介绍了python作用域与名字空间原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03

最新评论