2017-12-29 24 views
0

문자열이 있습니다. 실제로는 XML이 아니지만 태그 목록 일뿐입니다. 아무것도 계층 적이 지 않습니다. 난 그냥 키/값 쌍의 어휘를 꺼내고 싶다.태그 문자열을 파이썬의 dict로 변환합니다.

문자열에는 tag name으로 시작하고 value으로 끝나는 태그가 있습니다. 그것은 다음과 같습니다 :이 같은 딕셔너리를 생성하고 싶습니다

str = '<tag name="image_num_t" value="1"/><tag name="image_pixel_depth" type='A' value="6"/>' 

:

d = {'image_num' : 1, 'image_pixel_depth':6} 

이가 꽤 괜찮은 고통과 같습니다 (type 또는 아무것도 필요 없음) 처음부터 코드를 작성할 수 있으며 불필요하다고 느낄 수도 있습니다. 여러 가지 패키지 (lxlm 등)를 살펴 보았습니다. 적절한 XML로 변환 한 다음 성숙한 성인처럼 구문 분석 할 수 있다고 생각했지만 작동하지 않습니다.

파이썬 2.7을 사용하여 태그 문자열을 dict로 변환하는 가장 좋은 방법에 대해 조언 해 줄 사람이 있습니까? 감사.

답변

1

XML에서 정규화 된 문자열에서 누락 된 것이 루트 요소 인 경우 임시 루트 요소를 추가하는 것만 큼 쉽습니다. 이 시점에서 당신은 사전에이 정보를 추출하고 저장할 수있는 XML 파서를 사용할 수 있습니다

from xml.etree import ElementTree as ET 

str = '''<tag name="image_num_t" value="1"/><tag name="image_pixel_depth" type='A' value="6"/>''' 
source = '<root>' + str + '</root>' 

root = ET.fromstring(source) 
d = {t.attrib['name']: int(t.attrib['value']) for t in root.findall('tag')} 

시험 : https://eval.in/928392

+0

감사합니다 ... 난 주말 이후에 깊이 이것 좀 봐 것입니다. 매우 감사 –

관련 문제