文章内容

2020/12/14 15:11:12,作 者: 黄兵

UnicodeEncodeError: 'gbk' codec can't encode character: illegal multibyte sequence

最近在使用Python写CSV文件的时候,出现了如下错误:

UnicodeEncodeError: 'gbk' codec can't encode character: illegal multibyte sequence

出现问题的原因:
'gbk'编解码器无法编码字符。也就是说有一些字符无法被gbk编码。
具体代码如下:
class SaveFileCsv:
def __init__(self):
self._save_country_file = os.path.join(os.getcwd(), 'files\\world.csv')

def save_world(self, world_list):
csv_file = open(self._save_country_file, 'w+')
try:
writer = csv.writer(csv_file)
writer.writerow(('country', 'country_img', 'country_code', 'link'))
for item in world_list:
writer.writerow(item)
finally:
csv_file.close()
解决方案:
这里都是英文内容,所以直接更换成其他的编码方式写文件:
class SaveFileCsv:
def __init__(self):
self._save_country_file = os.path.join(os.getcwd(), 'files\\world.csv')

def save_world(self, world_list):
csv_file = open(self._save_country_file, 'w+', encoding='utf-8')
try:
writer = csv.writer(csv_file)
writer.writerow(('country', 'country_img', 'country_code', 'link'))
for item in world_list:
writer.writerow(item)
finally:
csv_file.close()
这里改成utf-8的方式写文件,问题解决。

参考资料:

黄兵个人博客原创。
分享到:

发表评论

评论列表