🐍 如何在 Python 中将 JSON 转换为 XML:完整教程与代码示例
在 JSON 和 XML 格式之间转换数据是 Web 开发、数据集成和 API 设计中的常见任务。
无论您是在迁移遗留系统还是构建新应用程序,了解如何在 Python 中高效执行此转换都将为您节省大量时间。
在本指南中,我们将介绍您需要的一切——从基本示例到生产就绪的代码片段。
🔍 什么是 JSON 和 XML?
在深入代码之前,让我们明确这两个格式代表什么。
- • JSON(JavaScript 对象表示法)
一种轻量级、人类可读的格式,主要用于 API 和 Web 应用程序。
- • XML(可扩展标记语言)
一种基于标记的格式,广泛用于企业系统、配置文件和遗留集成。
两种格式都以层次结构组织数据,但它们在语法和元数据表示方面有所不同。
⚙️ 设置:安装所需的库
Python 不包含内置的 XML-JSON 转换实用程序,但您可以安装像 xmltodict 这样的轻量级包。
pip install xmltodict或者,如果您只需要 JSON → XML 转换,可以使用 dicttoxml。
pip install dicttoxml🧩 示例 1:使用 xmltodict 将 JSON 转换为 XML
这是将 JSON 转换为 XML 的最直接方法:
import json
import xmltodict
# 示例 JSON 字符串
json_data = '{"user": {"name": "Alice", "age": 25, "city": "Tokyo"}}'
# 将 JSON 转换为 Python 字典
data_dict = json.loads(json_data)
# 将字典转换为 XML
xml_data = xmltodict.unparse(data_dict, pretty=True)
print(xml_data)输出:<?xml version="1.0" encoding="utf-8"?>
<user>
<name>Alice</name>
<age>25</age>
<city>Tokyo</city>
</user>💡 提示:
您可以使用以下参数设置自定义根标签或省略 XML 标头:
xmltodict.unparse(data_dict, full_document=False)🧠 示例 2:使用 dicttoxml 将 JSON 转换为 XML
dicttoxml 在属性和类型注释方面提供更多控制。
import json
from dicttoxml import dicttoxml
json_data = '{"product": {"id": 101, "name": "Laptop", "price": 899.99}}'
data_dict = json.loads(json_data)
xml_data = dicttoxml(data_dict, custom_root='catalog', attr_type=False)
print(xml_data.decode())输出:<catalog>
<product>
<id>101</id>
<name>Laptop</name>
<price>899.99</price>
</product>
</catalog>🔄 奖励:将 XML 转换回 JSON
您可以轻松地逆转此过程:
import xmltodict
import json
xml_data = """
<user>
<name>Alice</name>
<age>25</age>
</user>
"""
data_dict = xmltodict.parse(xml_data)
json_output = json.dumps(data_dict, indent=4)
print(json_output)结果:{
"user": {
"name": "Alice",
"age": "25"
}
}🚀 完整脚本示例
这是一个您可以在项目中重用的紧凑函数:
import json
import xmltodict
def json_to_xml(json_string: str, root_tag: str = None) -> str:
data = json.loads(json_string)
if root_tag:
data = {root_tag: data}
return xmltodict.unparse(data, pretty=True)
# 用法
sample_json = '{"device": {"id": 123, "status": "active"}}'
xml_result = json_to_xml(sample_json, root_tag="devices")
print(xml_result)🌐 在线替代方案:即时转换
不想编写任何代码?
试试我们的免费在线转换器——只需粘贴或上传您的 JSON,即可立即下载干净的 XML:
- • ✅ 100% 免费且私密
- • ⚡ 即时转换
- • 📁 支持上传和下载
🏁 结论
使用 xmltodict 和 dicttoxml 等工具,在 Python 中将 JSON 转换为 XML 很简单。
无论您是在处理 API 数据还是导出结构化报告,这些代码片段都将处理大多数用例。
如果您只需要快速转换,请访问:
🔗 https://www.jsonwork.com/zh-cn/json-to-xml
在线试用——无需设置!
由 JsonWork.com 撰写 – 在线转换 JSON 的最快方式。