Python数据存储之XML文档和字典的互转
作者:? 发布时间:2023-02-12 08:56:11
标签:Python,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文档转换为字典。
来源:https://juejin.cn/post/7102432915728007199


猜你喜欢
- 用ASP实现搜索引擎的功能是一件很方便的事,可是,如何实现类似3721的智能搜索呢?比如,当在搜索条件框内输入“中国人民”时,自动从中提取“
- 在做项目的过程中,我们经常会建立各种各样的规范,以方便团队之间更好的合作更好的完成项目;同样我们也经常会听到各种各样的协议,比如Google
- 本文实例讲述了python函数enumerate,operator和Counter使用技巧。分享给大家供大家参考,具体如下:最近看人家的代码
- 文档 地址functools.partial作用:functools.partial 通过包装手法,允许我们 "重新定义"
- 很简单的教程,献给喜欢SEO的朋友们。把article.asp?logID=26 替换成article.asp?/a
- 如何修改被表单引用的ASP页面?formhandler.asp<HTML><BODY BGCOLOR="
- 前言或许你已经用过装饰器,它的使用方式非常简单但理解起来困难(其实真正理解的也很简单),想要理解装饰器,你需要懂点函数式编程的概念,pyth
- 1、单个关键字加亮代码: <div id="txt"> 用JS让文章内容指定
- 前言随着Python 3.8的发布,赋值表达式运算符(也称为海象运算符)也发布了。运算符使值的赋值可以传递到表达式中。这通常会使语句数减少一
- 方法一:单表导入(1)打开"SQL Server 外围应用配置器"-->"功能的外围应用配置器"
- 基本概念gcache模块默认提供的是一个高速的内存缓存,操作效率非常高效,CPU性能损耗在ns纳秒级别。使用简单易上手,非常适合单机应用使用
- python实现原图裁剪为固定尺寸小图的具体代码,供大家参考,具体内容如下讲解1、代码效果:实现原图裁剪为固定尺寸小图代码import nu
- 如果不小心按到键盘上的Insert键的话,光标显示的就不是一条竖线,而是一个类似方块的阴影区域,比如插入一下insert键的介绍:它叫插入键
- 最近老师留了几个作业,虽然用opencv很简单一句话就出来了,但是还没用python写过。在官方文档中的tutorial中的threshol
- 下列语句部分是Mssql语句,不可以在access中使用。SQL语句分类:DDL—数据定义语言(CREATE,ALTER,DROP,DECL
- 逻辑回归模型 逻辑回归是应用非常广泛的一个分类机器学习算法,它将数据拟合到一个logit函数(或者叫做logistic函数)中,从而能够完成
- 表单类控件承载了一个网页数据的录入与交互,本章将介绍如何使用指令v-model完成表单的数据双向绑定。6.1 基本用法表单控件在实际业务较为
- 将pandas.DataFrame,pandas.Series的索引设置为datetime64 [ns]类型时,将其视为DatetimeIn
- 字典中元素的个数计算len(字典名)举例:person={"姓名":"张三","年龄&qu
- 如果你已经有使用JavaScript的经验,你可能已经知道这两个看似相同的方法:Array.prototype.map()和Array.pr