🐍 如何在 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-tw/json-to-xml
線上試用——無需設定!
由 JsonWork.com 撰寫 – 線上轉換 JSON 的最快方式。