xml.etree.ElementTree и текст поиска юникода

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


person seandavi    schedule 03.11.2011    source источник


Ответы (2)


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

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)
person chown    schedule 03.11.2011
comment
Я думаю, что это должно работать, но я все еще получаю ошибки. Следующий шаг — убедиться, что кодировка действительно UTF-8. - person seandavi; 03.11.2011

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

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

person seandavi    schedule 03.11.2011