Tutorial

如何在 Python 中将 JSON 转换为 XML – 完整教程与代码示例

学习如何使用 xmltodict 和 dicttoxml 在 Python 中逐步将 JSON 转换为 XML。包含示例、代码片段和免费在线转换器。

2025-10-11
5 min read

🐍 如何在 Python 中将 JSON 转换为 XML:完整教程与代码示例

JSONXML 格式之间转换数据是 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:

👉 将 JSON 转换为 XML – 免费在线工具

  • • ✅ 100% 免费且私密
  • • ⚡ 即时转换
  • • 📁 支持上传和下载


🏁 结论

使用 xmltodictdicttoxml 等工具,在 Python 中将 JSON 转换为 XML 很简单。

无论您是在处理 API 数据还是导出结构化报告,这些代码片段都将处理大多数用例。

如果您只需要快速转换,请访问:

🔗 https://www.jsonwork.com/zh-cn/json-to-xml

在线试用——无需设置!


JsonWork.com 撰写 – 在线转换 JSON 的最快方式。
👨‍💻

JsonWork 团队

致力于为开发者提供最佳的 JSON 处理工具

相关文章

更多文章即将发布...

需要帮助?