1
У меня возникла проблема с написанием XML-файла. Я конвертирую CSV-файл в DICT, а затем в файл XML. У меня проблема с кодировкой.Python XML write UnicodeDecodeError
import xml.etree.ElementTree as ET
import csv
data = {}
with open('csv.csv', 'r') as csvfile:
spamreader = csv.reader(csvfile, delimiter=';')
for row in spamreader:
data[row[2]] = {'category': row[0],
'ean': row[2],
}
katalog = ET.Element('Katalog')
for item in data:
ean_kod = ET.SubElement(vyrobek,'EAN')
ean_kod.text = data[item]['ean']
if ET.ElementTree(katalog).write('testunicode.xml',encoding="UTF-8",xml_declaration=True):
print "Ulozeno."
Когда я пытаюсь написать XML в файл, эта ошибка appers:
Traceback (most recent call last):
File "/media/CORSAIR/TEST/Eshop/macenauer_complete.py", line 95, in <module>
if ET.ElementTree(katalog).write('testunicode.xml',encoding="UTF-8",xml_declaration=True):
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 821, in write
serialize(write, self._root, encoding, qnames, namespaces)
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 940, in _serialize_xml
_serialize_xml(write, e, encoding, qnames, None)
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 940, in _serialize_xml
_serialize_xml(write, e, encoding, qnames, None)
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 938, in _serialize_xml
write(_escape_cdata(text, encoding))
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1074, in _escape_cdata
return text.encode(encoding, "xmlcharrefreplace")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 10: ordinal not in range(128)
TraceBack (самый последний вызов в прошлом) : Файл «/media/CORSAIR/TEST/Eshop/macenauer_complete.py», строка 7, в с открытым ('csv.csv', 'r', encoding = 'UTF-8') в виде csvfile: TypeError: 'encoding' является недопустимым аргументом ключевого слова для этой функции –
user3030743