xml.etree.ElementTree и unicode findtext - PullRequest
       31

xml.etree.ElementTree и unicode findtext

2 голосов
/ 03 ноября 2011

Я пытаюсь разобрать документы Medline xml, используя iterparse в модуле xml.etree.ElementTree. Все работает хорошо, за исключением того, что часть текста содержит символы, отличные от ascii. Я не вижу способа обработки юникода с использованием findtext. Есть предложения?

Ответы [ 2 ]

2 голосов
/ 03 ноября 2011

Вы пытались открыть файл с кодировкой utf8:

fd = open('some.xml', mode='r', encoding='utf-8')
xml.etree.ElementTree.iterparse(fd)

Или используйте декодирование:

fd = open('some.xml', mode='r')
sio = StringIO(fd.read().decode("utf-8"))
xml.etree.ElementTree.iterparse(sio)
0 голосов
/ 03 ноября 2011

Это был очень полезный пост в дополнение к ответу выше.

Чтение символов utf-8 из файла gzip в python

...