Python 中可以通过标准库中的 xml
模块将数据序列化为 XML 格式。
1. 将Python字典序列化为XML
示例代码如下:
import xml.etree.ElementTree as ET
data = {"person": {"name": "张三", "age": 18}}
root = ET.Element("root")
person = ET.SubElement(root, "person")
name = ET.SubElement(person, "name")
age = ET.SubElement(person, "age")
name.text = data["person"]["name"]
age.text = str(data["person"]["age"])
tree = ET.ElementTree(root)
tree.write("person.xml", encoding="utf-8")
解析:
- 引入xml.etree.ElementTree模块。
- 定义要序列化的Python 字典对象 data。
- 使用XML.etree.ElementTree模块定义根节点root,并创建子节点person、name、age。
- 将字典数据填充到各个标签内。
- 定义完毕后,用
ElementTree
类创建一个ElementTree
对象tree
。 - 将
tree
输出为person.xml
文件,编码为utf-8
。
输出的 person.xml
文件内容如下:
<root>
<person>
<name>张三</name>
<age>18</age>
</person>
</root>
2. 将XML字符串反序列化为Python字典
示例代码如下:
import xml.etree.ElementTree as ET
data = '''<person>
<name>张三</name>
<age>18</age>
</person>'''
root = ET.fromstring(data)
name = root.find("name").text
age = root.find("age").text
result = {"person": {"name": name, "age": int(age)}}
print(result)
解析:
- 定义XML字符串 data。
- 使用
ElementTree
模块中的fromstring()
方法将字符串反序列化为 Element 对象 root。 - 使用标签名查找节点,获取标签内的文本内容。
- 将反序列化的结果以Python字典形式输出。
输出的结果为:
{'person': {'name': '张三', 'age': 18}}
以上就是Python序列化数据为XML的攻略,通过这两个示例,我们可以看到将Python数据序列化为XML及将XML反序列化为Python的实现方法,读者可以根据具体需求进行修改及应用。