Python 写入excel 使用windows打开乱码问题解决方案 utf-8-sig

news/2025/1/25 7:59:10/

 

将数据写入csv文件时,在windows电脑中打开使用乱码错行,mac电脑打开没有任何问题 。

所以问题应该是编码不同导致的。文本中包含了中文、表情字符集等,无论使用 utf-8 还是 gkb 编码都有问题。

最终使用 utf-8-sig 编码完美解决问题。 

with open(file=file, mode=mode, encoding='utf-8-sig', newline='', errors='ignore') as f:f.write(datas)

解决前:

解决后:

 

 

案例:将8W+条数据每1000条导出到一个excel中

import csvdef write_to_csv(file, csv_header=None, values=None, data_type='tuple', mode='w'):"""写入数据到csv到文件中:param headers: 表头:列表类型:param values: 表数据:1.嵌套元组的列表;2.嵌套字典的列表:param data_type: 传入的数据类型:1.'tuple';2.'dict':param mode: 写入方式,默认写入“w”,  追加:'a+'"""# utf-8-sig: 解决 windows excel 表情字符乱码等问题with open(file=file, mode=mode, encoding='utf-8-sig', newline='', errors='ignore') as f:writer = csv.writer(f)  # 实例化writer对象if data_type == 'tuple':writer.writerows(values)elif data_type == 'header':writer.writerow(csv_header)  # 写入表头else:print("数据类型错误,请确认!")def comments_data_csv():""" 将 comments 数据导出 excel (每一千条导出到一个excel文件) """query_data = shein_mysql.query_tables(exe_sql='SELECT count(*) num FROM `shein_comments`;',)comment_num = query_data['num']for i in range(0, int(comment_num/1000)+1):logging.info(f'{i*1000, (i+1)*1000}')query_data = shein_mysql.query_tables(exe_sql='SELECT id, score, overall_fit, content, category, country, country_url FROM `shein_comments` WHERE id>%s and id<=%s;',args=(i*1000, (i+1)*1000),query_all=True)comment_item_li = []comment_item_li.append(['id', 'score', 'overall_fit', 'category', 'content', 'country', 'country_url'])for data in query_data:id = data['id']score = data['score']overall_fit = data['overall_fit']category = data['category']content = data['content']country = data['country']country_url = data['country_url']logging.info(f'item: {id, score, overall_fit, category, content}')comment_item_li.append([id, score, overall_fit, category, content, country, country_url])# 写入 csv 文件write_to_csv(f'data/shein_comment_{i}.csv', values=comment_item_li)

 

 

----------------- END --------------------


http://www.ppmy.cn/news/804981.html

相关文章

csv文件导入后台乱码_用Excel打开CSV格式文件乱码,三种方法可以处理好!

日常办公中&#xff0c;我们使用办公软件办公是比较平凡的&#xff0c;现在的办公软件也有好几种(微软的office、金山的WPS等)。而且小编觉得在所有的办公软件中是微软的office是比较有名的。这款软件不仅功能齐全&#xff0c;还可以兼容很多的文件格式。这些办公软件带给我们方…

python pandas读取csv、excel文件乱码

下载了一个csv表格&#xff0c;pandas读取了&#xff0c;打出来的是乱码。 df pd.read_csv(11.csv) df.head()想着转换为Excel格式看看&#xff0c;是否就好了。就用wps打开&#xff0c;并另存为 .xls结尾的excel文件&#xff0c;使用还是乱码。 应该是编码问题&#xff0c;…

【解决方案】PDF文字复制后乱码

全程使用Adobe Acrobat Pro DC解决。 首先大家可以参考一下这篇文章&#xff1a;如何解决pdf里的文字复制出来是乱码的问题&#xff1f; - 知乎 有两个解决方案&#xff0c;一个是安装相应字体&#xff0c;另一个是将PDF转为图片版PDF&#xff0c;然后OCR识别。 本人是第二种情…

数据库导入乱码原因和一些解决方案

数据库导入的时候乱码。分成两种&#xff1a; 全部乱码、中文乱码。 先说中文乱码&#xff1a; 通常情况下&#xff0c;26个英文字符、数字在所有转码的时候都是通用的。但是在使用不支持中文或者支持中文不完善的编码&#xff08;比如mysql的UTF8&#xff09;的时候会出现中文…

csv文件乱码或者科学计数问题解决方法

一、新建一个表格 全选 右键 设置单元格格式&#xff0c;将表格格式全部设置程文本二、点击数据导入数据&#xff0c;直接打开数据文件&#xff0c;选择数据源&#xff0c; 找到你的csv文件打开 三、点击下一步 四、选择分隔符号&#xff0c; 点击下一步 五、选择科学计数法显…

解决jacob用wps将word转html的时候个别生僻字乱码的问题

原创文章&#xff0c;转载请注明出处 用jacob将wps转html的时候&#xff0c;Java读入转后的html&#xff0c;发现有个别生僻字出现乱码&#xff0c; 解决方法&#xff1a; 因为WPS默认转成html是gb2312编码的&#xff0c;而gb2312不支持一些生僻字&#xff0c;所以会出现乱码…

geoserver 中文标注显示乱码问题

用udig工具拷贝下来的xml文件&#xff0c;在geoserver 上的注记显示乱码。 在网上找了好久&#xff0c;教程大多是将工作空间和style 文件的编码改为gbk&#xff0c;没用。 经过多方查找&#xff0c;发现是geoserver 服务器上没有安装中文字体&#xff0c;如图&#xff0c;这是…

PPT乱码如何解决?

PPT乱码如何解决&#xff1f; 如下图&#xff1a; 然后在WPS的搜索框里搜索字体&#xff0c;然后随意选择一种字体&#xff0c;确定即可。 效果如下&#xff1a; 谢谢大家&#xff01;&#xff01;