Python에서 딕셔너리(Dictionary) 데이터를 XML 형식으로 변환해야 하는 경우가 종종 있습니다. 이럴 때 가장 간편하게 사용할 수 있는 도구가 바로 dicttoxml 라이브러리입니다. 이 글에서는 설치 방법부터 기본 사용법, 그리고 보기 좋게 들여쓰기된 XML을 출력하는 방법까지 단계별로 알아보겠습니다.
1. dicttoxml 패키지 설치하기
Python 딕셔너리를 XML로 변환하려면 먼저 dicttoxml 패키지를 설치해야 합니다. 터미널이나 명령 프롬프트에서 아래 명령어를 실행하세요.
$ pip install dicttoxml
설치가 완료되면 별도의 복잡한 설정 없이 바로 dicttoxml() 메서드를 호출하여 XML을 생성할 수 있습니다.
2. 기본 사용 예제
다음은 중첩된 딕셔너리를 XML로 변환하는 간단한 예제입니다.
a = {
'foo': 45,
'bar': {
'baz': "Hello"
}
}
xml = dicttoxml.dicttoxml(a)
print(xml)실행 결과
위 코드를 실행하면 다음과 같은 바이트(bytes) 형태의 XML 문자열이 출력됩니다.
b'<?xml version="1.0" encoding="UTF-8" ?><root><foo type="int">45</foo><bar type="dict"><baz type="str">Hello</baz></bar></root>'
출력 결과를 살펴보면 각 값의 자료형(type)이 속성으로 자동 지정되는 것을 확인할 수 있습니다. 정수는 type="int", 문자열은 type="str", 중첩 딕셔너리는 type="dict"로 표시됩니다.
3. 보기 좋게 포맷팅된 XML 출력하기
기본 출력 결과는 한 줄로 이어져 있어 가독성이 떨어질 수 있습니다. 이때 Python 표준 라이브러리인 xml.dom.minidom의 toprettyxml() 메서드를 함께 사용하면 들여쓰기가 적용된 깔끔한 XML을 얻을 수 있습니다.
from xml.dom.minidom import parseString
a = {
'foo': 45,
'bar': {
'baz': "Hello"
}
}
xml = dicttoxml.dicttoxml(a)
dom = parseString(xml)
print(dom.toprettyxml())실행 결과
<?xml version = "1.0" ?>
<root>
<foo type = "int">45</foo>
<bar type = "dict">
<baz type="str">Hello</baz>
</bar>
</root>마무리
dicttoxml 라이브러리를 사용하면 단 몇 줄의 코드만으로 Python 딕셔너리를 XML로 손쉽게 변환할 수 있습니다. 여기에 minidom의 toprettyxml() 메서드를 조합하면 사람이 읽기 쉬운 형태의 XML 문서까지 만들 수 있어, 설정 파일 생성이나 API 응답 처리 등 다양한 상황에서 유용하게 활용할 수 있습니다.