繁体   English   中英

Python XML写UnicodeDecodeError

[英]Python XML write UnicodeDecodeError

我在将XML写入文件时遇到问题。 我将CSV文件转换为DICT,然后转换为XML文件。 我编码有问题。

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写入文件时,出现此错误:

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)

尝试也打开具有指定编码的csv文件

with open('csv.csv', 'r', encoding='UTF-8') as csvfile:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM