Python 딕셔너리를 XML로 변환하는 방법
Python에서 딕셔너리(dictionary) 객체를 XML 형식으로 직렬화하려면 dicttoxml 패키지를 사용하는 것이 가장 간편합니다. 이 패키지는 복잡한 설정 없이 단 한 줄의 함수 호출만으로 딕셔너리를 표준 XML 문자열로 변환해 줍니다.
1. dicttoxml 패키지 설치
먼저 pip를 사용하여 dicttoxml 패키지를 설치합니다.
pip3 install dicttoxml
2. 딕셔너리 객체 생성
XML로 변환할 딕셔너리 객체를 하나 만들어 보겠습니다.
>>> D1 = {"name": "Ravi", "age": 21, "marks": 55}3. dicttoxml() 함수로 변환하기
이제 dicttoxml 패키지에서 dicttoxml() 함수를 임포트하고, 인자로 앞서 만든 딕셔너리 D1을 전달합니다. 이 함수는 딕셔너리의 XML 표현을 담은 인코딩된 바이트 문자열(bytes)을 반환합니다.
>>> from dicttoxml import dicttoxml
>>> xml = dicttoxml(D1)
4. decode()로 일반 문자열 얻기
반환된 결과는 바이트 문자열이므로, decode() 메서드를 사용하여 일반 문자열로 디코딩할 수 있습니다. 디코딩된 문자열에는 딕셔너리의 XML 버전이 담겨 있습니다.
>>> xml = xml.decode()
>>> xml
'<?xml version="1.0" encoding="UTF-8" ?><root><name type="str">Ravi</name><age type="int">21</age><marks type="int">55</marks></root>'
출력 결과를 보면 각 값의 데이터 타입(type 속성)까지 자동으로 포함되어 있어, XML을 다시 파싱할 때 원래의 자료형 정보를 활용할 수 있다는 점이 유용합니다.
5. XML 파일로 저장하기
변환된 XML 문자열은 파일로 저장하여 보관하거나 다른 시스템과 공유할 수도 있습니다.
>>> xmlfile = open("dict.xml", "w")
>>> xmlfile.write(xml)
>>> xmlfile.close()위 코드를 실행하면 현재 작업 디렉터리에 dict.xml 파일이 생성되고, 그 안에 딕셔너리의 XML 표현이 저장됩니다.
마무리
이처럼 dicttoxml 패키지를 사용하면 설치부터 파일 저장까지 몇 줄의 코드만으로 Python 딕셔너리를 손쉽게 XML로 직렬화할 수 있습니다. 데이터 교환이나 설정 파일 생성 등 XML 형식이 필요한 상황에서 유용하게 활용해 보시기 바랍니다.