在python中从XML写入CSV,编码错误

时间:2011-01-17 21:35:24

标签: python xml character-encoding minidom

我正在尝试将XML文件转换为CSV,但XML的编码(“ISO-8859-1”)显然包含不在Python用来写行的ascii编解码器中的字符。

我收到错误:

Traceback (most recent call last):
  File "convert_folder_to_csv_PLAYER.py", line 139, in <module>
    xml2csv_PLAYER(filename)
  File "convert_folder_to_csv_PLAYER.py", line 121, in xml2csv_PLAYER
    fout.writerow(row)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe1' in position 4: ordinal not in range(128)

我试过按如下方式打开文件: dom1 = parse(input_filename.encode( "utf-8" ) )

我尝试在写入之前替换每行中的\ xe1字符。有什么建议?

1 个答案:

答案 0 :(得分:1)

xml解析器返回unicode个对象。这是好事。事实是,csv模块无法处理它们。

您可以在传递给unicode作者之前对xml解析器返回的每个csv字符串进行编码,但更好的方法是使用csv UnicodeWriter recipe来自{{1}的官方文档1}}模块:

csv