Python数据存储之XML文档和字典的互转代码示例

作者:袖梨 2022-06-25

本篇文章小编给大家分享一下Python数据存储之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,文件内容如下:



    
        
            10000
            苹果
            99999
        
        
            10001
            小米
            999
        
        
            10002
            华为
            9999
        
    
# 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))      # 输出为:
                        # 说明此时已经转为字典(排序字典)~
    print("---"*25)
    # 美观格式
    import pprint
    dd = pprint.PrettyPrinter(indent=4)
    dd.pprint(d)

总结

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

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

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

相关文章

精彩推荐