#python #encoding #utf-8 #lxml #decoding
#python #кодирование #utf-8 #lxml #декодирование
Вопрос:
я пытаюсь проанализировать файл docx. Сначала я разархивировал его, затем попытался прочитать Document.xml файл с with open(..)
и его ошибка, связанная с тем, что «кодек ‘charmap’ не может декодировать байт 0x98 в позиции 7618: сопоставление символов «. XML имеет кодировку «UTF-8»:
Ошибка:
Я написал следующий код:
with open(self.tempDir self.CONFIG['main_xml']) as xml_file:
self.dom_xml = etree.parse(xml_file)
Я попытался принудительно закодировать в UTF-8, но тогда я не могу правильно читать etree.fromstring(..)
символ 7618 (из ошибки) равен :
Пожалуйста, помогите мне. Как правильно прочитать XML-файл? Спасибо
Комментарии:
1. Можете ли вы поделиться этим XML?
2.
with open(<name of xml file>, encoding='utf-8') as xml_file
3. @Alderven, да, конечно, эта ссылка на файл .docx с диска.google: drive.google.com/file/d/1fvmyiJz0WMM-E-X3LP6Raw5B2-_Udw38 /…
4. @snakecharmerb , я пытался сделать это так, но, как я уже говорил, xml_file становится недействительным
Ответ №1:
Это работает без ошибок в вашем файле:
import zipfile
import xml.etree.ElementTree as ET
zipfile.ZipFile('file.docx').extractall()
root = ET.parse('word/document.xml').getroot()
Комментарии:
1. Да, это работает, но я не понимаю, почему он выходит из строя при использовании
lxml
иwith open()
. В любом случае, большое спасибо )