파이썬에서 딕셔너리(dictionary) 데이터를 XML 형식으로 변환하고 싶다면 dicttoxml 패키지를 사용하는 것이 가장 간편한 방법입니다. 이 패키지는 복잡한 설정 없이 파이썬 객체를 손쉽게 XML 문자열로 변환해 줍니다.
dicttoxml 설치하기
먼저 pip를 이용해 dicttoxml 패키지를 설치합니다.
$ pip install dicttoxml
기본 사용법
설치가 완료되면 dicttoxml() 메서드를 호출하여 딕셔너리를 XML로 변환할 수 있습니다.
예제 코드
a = {
'foo': 45,
'bar': {
'baz': "Hello"
}
}
xml = dicttoxml.dicttoxml(a)
print(xml)실행 결과
위 코드를 실행하면 다음과 같은 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)이 자동으로 감지되어 속성으로 추가된 것을 확인할 수 있습니다. 정수는 int, 문자열은 str, 딕셔너리는 dict로 표시됩니다.
보기 좋게 포맷팅하기 (Pretty Print)
기본 출력은 한 줄로 이어져 있어 가독성이 떨어질 수 있습니다. 이럴 때는 표준 라이브러리인 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 패키지를 사용하면 단 몇 줄의 코드로 파이썬 딕셔너리를 XML로 변환할 수 있습니다. API 응답 생성, 설정 파일 작성, 데이터 교환 등 XML 형식이 필요한 다양한 상황에서 유용하게 활용할 수 있으니, 필요하다면 minidom을 조합해 원하는 형태로 결과물을 다듬어 보시기 바랍니다.