因此,我试图用带有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/

10-13 09:17