🐍 Python으로 JSON을 XML로 변환하는 방법: 코드 예제가 포함된 완전한 튜토리얼
JSON과 XML 형식 간의 데이터 변환은 웹 개발, 데이터 통합, API 설계에서 일반적인 작업입니다.레거시 시스템을 마이그레이션하거나 새로운 애플리케이션을 구축할 때 Python에서 이 변환을 효율적으로 수행하는 방법을 알면 많은 시간을 절약할 수 있습니다.
이 가이드에서는 기본 예제부터 프로덕션 준비 스니펫까지 필요한 모든 것을 안내합니다.
🔍 JSON과 XML이란 무엇인가요?
코드로 들어가기 전에 이 두 형식이 무엇을 나타내는지 명확히 하겠습니다.
- • JSON (JavaScript Object Notation)
주로 API와 웹 앱에서 사용되는 가벼우면서 사람이 읽을 수 있는 형식입니다.
- • XML (Extensible Markup Language)
엔터프라이즈 시스템, 설정 파일, 레거시 통합에서 널리 사용되는 마크업 기반 형식입니다.
두 형식 모두 계층적으로 데이터를 구조화하지만, 구문과 메타데이터 표현이 다릅니다.
⚙️ 설정: 필요한 라이브러리 설치
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/ko/json-to-xml
온라인에서 시도해보세요 — 설정이 필요하지 않습니다!
JsonWork.com에서 작성 – JSON을 온라인에서 변환하는 가장 빠른 방법.