文章内容
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的方式写文件,问题解决。
参考资料:
黄兵个人博客原创。
评论列表