'Ascii'编解码器无法编码位置152-153的字符

时间:2018-04-12 11:17:15

标签: python python-2.7 encoding

我正在尝试使用二进制模式在csv文件中写入一些数据。我的数据是列表,如下所示:

data= [[None, u'https://aaa.com/p/cat.do?tags=|5555|4444|8888&zzz;A=3', u'00 .00.00.000, 00.00.00.000', u'25359725', u'2018-03-06 18:01:18', u'DC01F54GH8D.aa201', None, 1814498434, 765651, u'2018-03-12 18:01:18', 168, 0, u'2018-03-12 18: 32:08.428032'], [None, u'https://aaa.com/p/cat.do?tags=|5555|4444|8888&zzz;A=\x80\x99s+Day+', u'00.00.00.000, 00.00.00.000', u'10707456', u'2018-03-06 18:01:02', u'76FD86AA.abd', None, 1814498440, 760960, u'2018-03-12 18:01:02', 168, 0, u'2018-03-12 18:32:08.805207']]
filename="table.csv"
with open(filename, "wb") as f:
    writer = csv.writer(f)
    writer.writerows(data)

但这会引发以下错误:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 152-153: ordinal not in range(128)

我花了很多时间试图解决这个问题而没有成功。你能帮我解决这个问题吗?

我正在使用python 2.7

提前致谢

修改 我添加了导致问题的示例 + 我知道有一个类似的帖子,但它只处理一个字符串,在这里我想知道如何处理列表列表。

1 个答案:

答案 0 :(得分:-1)

有多种方法可以解决这个问题:

  你可以尝试一下:

from unidecode import unidecode
new_string = unidecode(string)
  

然后使用新字符串进行处理

如果unidecode不起作用,您也可以查看此链接:

https://stackoverflow.com/questions/3704731/replace-non-ascii-chars-from-a-unicode-string-in-python