반응형
XML 파일에이 문자가 있습니다.
<data>
<products>
<color>fumè</color>
</product>
</data>
다음 코드를 사용하여 ElementTree 인스턴스를 생성하려고합니다.
string_data = open('file.xml')
x = ElementTree.fromstring(unicode(string_data.encode('utf-8')))
다음과 같은 오류가 발생합니다.
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe8' in position 185: ordinal not in range(128)
(참고 : 위치가 정확하지 않습니다. 더 큰 XML에서 샘플링했습니다.)
그것을 해결하는 방법? 감사
해결 방법
ElementTree가 작동하기 위해 XML을 디코딩 할 필요가 없습니다 . XML은 자체 인코딩 정보 (기본값은 UTF-8)를 전달하고 ElementTree는 유니 코드를 출력하여 작업을 수행합니다.
>>> data = '''... <data>
... <products>
... <color>fumè</color>
... </products>
... </data>
... '''
>>> x = ElementTree.fromstring(data)
>>> x[0][0].text
u'fum\xe8'
데이터가 file (like) 객체에 포함 된 경우 파일 이름 또는 파일 객체를 ElementTree.parse ()
함수에 직접 전달하면됩니다.
x = ElementTree.parse('file.xml')
참조 페이지 https://stackoverflow.com/questions/12349728
반응형
'파이썬' 카테고리의 다른 글
파이썬 다차원 Json 배열을 Python으로 구문 분석 (0) | 2021.02.06 |
---|---|
파이썬 zlib 지원으로 소스에서 Python 빌드 (0) | 2021.02.06 |
파이썬 Python을 사용하여 JSON에서 값 가져 오기 (0) | 2021.02.06 |
파이썬 Pandas : 기존 열에서 계산 된 값을 사용하여 데이터 프레임에 두 개의 새 열 만들기 (0) | 2021.02.06 |
파이썬 Python을 사용하여 CSV에서 비표준 미국 영어 문자 및 기호 처리 (0) | 2021.02.05 |
댓글