zl程序教程

您现在的位置是:首页 >  其他

当前栏目

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

错误 解决 出现 乱码 写入 csv 问题 空行
2023-09-11 14:19:16 时间

✅作者简介:大家好我是hacker707,大家可以叫我hacker
📃个人主页:hacker707的csdn博客
🔥系列专栏:hacker的错误集
💬推荐一款模拟面试、刷题神器👉点击跳转进入网站

在这里插入图片描述

错误内容

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)

在这里插入图片描述

错误分析

用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)

在这里插入图片描述

结束语🏆🏆🏆

🔥推荐一款模拟面试、刷题神器网站
点击链接注册即可
1、算法篇(398题):面试必刷100题、算法入门、面试高频榜单
2、SQL篇(82题):快速入门、SQL必知必会、SQL进阶挑战、面试真题
3、大厂笔试真题:字节跳动、美团、百度、腾讯…

在这里插入图片描述