因此,我试图用带有Unicode字符的csv表制作一个表:
with open('test1.csv', 'w') as csvfile:
writer = csv.writer(csvfile)
[writer.writerow(r) for r in table]
但是,每次尝试运行程序时,都会出现此错误:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 8-10: ordinal not in range(128)
我该如何解决?
最佳答案
假设您正在使用Python2:
with open('test1.csv', 'wb') as csvfile:
writer = csv.writer(csvfile)
for r in table:
writer.writerow([x.encode('utf-8') for x in r])
当然,当您打开csv文件时,还需要使用相同的编码对其进行解码:
with open('test1.csv') as csvfile:
reader = csv.reader(csvfile.decode('utf-8'))
(注意:如果您使用的是Python3,则不需要这样做-您原来的示例可以正常运行)。
关于python - Python上的Unicode错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32870044/