【hacker的错误集】解决写入csv出现乱码和空行问题

简介: 用csv成功写入数据打开Excel会出现乱码和空行😐😐😐

1122c888f5eb451ca45734f43c724dab.jpg


错误内容



import csv
# 数据
person = [
    {'姓名': 'xxx', '年龄': 18, '爱好': '学习python'},
    {'姓名': 'yyy', '年龄': 18, '爱好': '学习python'},
    {'姓名': 'zzz', '年龄': 19, '爱好': '学习python'},
]
# 表头
header = ['姓名', '年龄', '爱好']
with open('person.csv', 'w', encoding='utf-8') as file_obj:
    # 创建对象
    dictWriter = csv.DictWriter(file_obj, header)
    # 写表头
    dictWriter.writeheader()
    # 写入数据
    dictWriter.writerows(person)

cb7269593662427e8b20cc7ebb991cb9.png


错误分析



用csv成功写入数据打开Excel会出现乱码和空行😐😐😐

居然:那应该怎么解决呢


解决方案



处理空行问题

在写入数据时传入newline=’ ’

处理写入Excel打开会出现乱码问题

只需要在原来写入的编码格式utf-8后面加-sig处理一下(utf-8-sig)


✅改正后代码:


import csv
# 数据
person = [
    {'姓名': 'xxx', '年龄': 18, '爱好': '学习python'},
    {'姓名': 'yyy', '年龄': 18, '爱好': '学习python'},
    {'姓名': 'zzz', '年龄': 19, '爱好': '学习python'},
]
# 表头
header = ['姓名', '年龄', '爱好']
with open('person.csv', 'w', encoding='utf-8-sig', newline='') as file_obj:
    # 创建对象
    dictWriter = csv.DictWriter(file_obj, header)
    # 写表头
    dictWriter.writeheader()
    # 写入数据
    dictWriter.writerows(person)

5831a58d3aee4765b19b7635fdd42ff8.png


结束语🏆🏆🏆


🔥推荐一款模拟面试、刷题神器网站

点击链接注册即可

1、算法篇(398题):面试必刷100题、算法入门、面试高频榜单

2、SQL篇(82题):快速入门、SQL必知必会、SQL进阶挑战、面试真题

3、大厂笔试真题:字节跳动、美团、百度、腾讯…


相关文章
|
关系型数据库 数据库 PostgreSQL
使用 Docker 在 Windows、Mac 和 Linux 系统轻松部署 PostgreSQL 数据库
使用 Docker 在 Windows、Mac 和 Linux 系统轻松部署 PostgreSQL 数据库
790 1
|
存储 消息中间件 缓存
腾讯看点基于 Flink 的实时数仓及多维实时数据分析实践
当业务发展到一定规模,实时数据仓库是一个必要的基础服务。从数据驱动方面考虑,多维实时数据分析系统的重要性也不言而喻。但是当数据量巨大的情况下,拿腾讯看点来说,一天上报的数据量达到万亿级的规模,要实现极低延迟的实时计算和亚秒级的多维实时查询是有技术挑战的。
腾讯看点基于 Flink 的实时数仓及多维实时数据分析实践
|
10月前
|
监控 安全 调度
任务调度企业级场景下的新选择,兼容 XXL-JOB 通信协议
XXL-JOB 是一个开源的分布式任务调度平台,开箱即用、简单易上手,得到了很多开发者的喜爱。和其他中间件开源项目一样,当开发者把开源项目部署到公共云,应用到企业级场景中时,就会在稳定性、性能、安全、其他云产品间集成体验上提出更高的要求。基于此背景,阿里云微服务引擎 MSE 基于自研的分布式任务调度平台 SchedulerX,通过兼容 XXL-JOB 客户端的通信协议,在开源 XXL-JOB 版本的基础上,提升了稳定性、安全、性能、可观测等能力,满足企业客户的需求。此外,为方便测试,提供了一个月 400 元额度的免费试用和预付费首购 5 折、续费 6.5 折起的优惠。
473 172
|
11月前
|
人工智能 运维 监控
自动化运维:提升IT效率的关键策略
在当今快速发展的信息技术时代,企业面临着不断增长的数据量和复杂的系统架构。为了保持竞争力,自动化运维成为提高IT部门效率和响应速度的关键策略。本文将探讨自动化运维的核心概念、实施步骤以及面临的挑战,旨在为IT专业人员提供实现高效运维管理的实用指南。
237 31
|
11月前
|
Java Maven
Maven编译报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile 解决方案
在执行Maven项目中的`install`命令时,遇到编译插件版本不匹配的错误。具体报错为:`maven-compiler-plugin:3.13.0`要求Maven版本至少为3.6.3。解决方案是将Maven版本升级到3.6.3或降低插件版本。本文详细介绍了如何下载、解压并配置Maven 3.6.3,包括环境变量设置和IDEA中的Maven配置,确保项目顺利编译。
12239 5
Maven编译报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile 解决方案
|
12月前
|
安全 Java 开发者
Java多线程编程中的常见问题与解决方案
本文深入探讨了Java多线程编程中常见的问题,包括线程安全问题、死锁、竞态条件等,并提供了相应的解决策略。文章首先介绍了多线程的基础知识,随后详细分析了每个问题的产生原因和典型场景,最后提出了实用的解决方案,旨在帮助开发者提高多线程程序的稳定性和性能。
|
JavaScript Java 关系型数据库
民宿预定管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
民宿预定管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
565 0
民宿预定管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
|
存储 数据可视化 Java
单细胞|Signac 进行 Motif 分析
单细胞|Signac 进行 Motif 分析
|
Java 数据库连接 网络安全
已解决 IDEA Maven 项目中 “Could not find artifact“ 问题的常见情况和解决方案
已解决 IDEA Maven 项目中 “Could not find artifact“ 问题的常见情况和解决方案
15403 0
|
数据库 Python
什么问题会导致404?如何解决404?
什么问题会导致404?如何解决404?