【发布时间】:2018-09-22 12:33:27
【问题描述】:
我正在尝试使用二进制模式在 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。
提前致谢
编辑: 我添加了导致问题的示例 + 我知道有一个类似的帖子,但它只处理一个字符串,在这里我想知道如何处理列表。
【问题讨论】:
-
这听起来像是一个编码问题(参见here),但它也对我有用。
-
“使用二进制模式”如何与您报告的文本转换错误押韵?
-
@Rakesh 这是因为我发布的数据列表只是真实数据的一部分,我无法发布所有列表,因为它非常非常长,我找不到确切的元素导致错误
-
@usr2564301 没有回答用户的问题。 OP 没有隐式使用
str
标签: python python-2.7 encoding