Python 이 사전 을 XML 로 변환 하 는 방법
파 이 썬 사전 을 사용 하여 데 이 터 를 저장 하고 XML 형식 으로 변환 하고 싶 습 니 다.
해결 방안
xml.etree.ElementTree
라 이브 러 리 는 일반적으로 분석 작업 에 사용 되 지만 XML 문 서 를 만 들 수 있 습 니 다.예 를 들 어 다음 과 같은 함 수 를 고려 합 니 다.
from xml.etree.ElementTree import Element
def dict_to_xml(tag, d):
'''
Turn a simple dict of key/value pairs into XML
'''
elem = Element(tag)
for key, val in d.items():
child = Element(key)
child.text = str(val)
elem.append(child)
return elem
다음은 사용 예 입 니 다.
>>> s = { 'name': 'GOOG', 'shares': 100, 'price':490.1 }
>>> e = dict_to_xml('stock', s)
>>> e
<Element 'stock' at 0x1004b64c8>
>>>
전환 결 과 는 하나의Element
인 스 턴 스 입 니 다.I/O 작업 에 있어 서xml.etree.ElementTree
의tostring()
함 수 를 사용 하면 바이트 문자열 로 쉽게 변환 할 수 있 습 니 다.예 를 들 면:
>>> from xml.etree.ElementTree import tostring
>>> tostring(e)
b'<stock><price>490.1</price><shares>100</shares><name>GOOG</name></stock>'
>>>
어떤 요소 에 속성 치 를 추가 하려 면set()
방법 을 사용 할 수 있 습 니 다.
>>> e.set('_id','1234')
>>> tostring(e)
b'<stock _id="1234"><price>490.1</price><shares>100</shares><name>GOOG</name>
</stock>'
>>>
만약 원소 의 순 서 를 유지 하고 싶다 면,일반적인 사전 을 대체 하 는 구조OrderedDict
를 고려 할 수 있다.1.7 소절 을 참고 하 세 요.토론 하 다.
XML 을 만 들 때 문자열 형식의 값 만 구성 할 수 있 도록 제 한 됩 니 다.예 를 들 면:
def dict_to_xml_str(tag, d):
'''
Turn a simple dict of key/value pairs into XML
'''
parts = ['<{}>'.format(tag)]
for key, val in d.items():
parts.append('<{0}>{1}</{0}>'.format(key,val))
parts.append('</{}>'.format(tag))
return ''.join(parts)
문 제 는 네가 수 동 으로 구 조 를 할 때 약간의 번 거 로 움 을 만 날 수 있다 는 것 이다.예 를 들 어 사전 의 값 에 특수 문자 가 포함 되 어 있 을 때 어떻게 됩 니까?
>>> d = { 'name' : '<spam>' }
>>> # String creation
>>> dict_to_xml_str('item',d)
'<item><name><spam></name></item>'
>>> # Proper XML creation
>>> e = dict_to_xml('item',d)
>>> tostring(e)
b'<item><name><spam></name></item>'
>>>
프로그램의 뒤에 있 는 예 에서 문자'<'와'>'가< 로 바 뀌 었 음 을 알 수 있 습 니 다.와<이 문자 들 을 수 동 으로 변환 해 야 한다 면
xml.sax.saxutils
의 escape()
과unescape()
함 수 를 사용 할 수 있 습 니 다.예 를 들 면:
>>> from xml.sax.saxutils import escape, unescape
>>> escape('<spam>')
'<spam>'
>>> unescape(_)
'<spam>'
>>>
올 바른 출력 을 만 들 수 있 는 것 외 에 도 문자열 이 아 닌 인 스 턴 스 를 만 드 는 것 을 추천 하 는 또 다른 이유 가 있 습 니 다.문자열 조합 으로 더 큰 문 서 를 만 드 는 것 이 쉽 지 않 습 니 다.Element
인 스 턴 스 는 XML 텍스트 를 분석 하 는 것 을 고려 하지 않 고 다양한 방식 으로 처 리 될 수 있 습 니 다.즉,고급 데이터 구조 에서 모든 작업 을 완성 하고 마지막 에 문자열 로 출력 할 수 있다.이상 은 Python 이 사전 을 XML 로 변환 하 는 방법 에 대한 상세 한 내용 입 니 다.Python 이 사전 을 XML 로 변환 하 는 방법 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.