csv 字符串_写入csv报错:'gbk' codec can't encode character '\xa0'

本人在爬取数据,准备写入csv时,报了这样一个错:

error:
UnicodeEncodeError: 'gbk' codec can't encode character 'xa0' in position xx: illegal multibyte sequence
​
报错关键词:gbk、xa0

报错原因请参考这篇文章:UnicodeEncodeError报错原因,上面讲得很详细(虽然我用了文章说的方法并没有解决问题,还需要一个步骤,即我文中的第二步),原因简单说就是:前端的 的转换编码后遗症问题(粗略理解的话)

需要注意个地方以避免此问题:

  • 从requests中获取的编码设定:
r.encoding = r.apparent_encoding
  • 打开csv文件时的编码设定为:
with open("E:/=My learning record/myEssay/result/myEssayData.csv", "w",newline='',encoding='utf-8-sig') as csvfile:
    
#   "E:/=My learning record/myEssay/result/myEssayData.csv" 存储路径
#   newline=''  :否则写入一行后会有空行
#   encoding='utf-8-sig':否则会出现下图的乱码:

d8198fd1f18b9e4dc3247a8c0abcdce2.png
此图来自网络,因为我的来不及截图,侵删
  • 将需要写入csv的字符串中的'xa0'替换成空格
# 先写入首行
writer.writerow(["爬取的具体时刻", "彼时榜单"])
writer.writerow(["",j.replace(u'xa0 ', u' ')])
#这是逐行写入,所呈现出来的就是这样的效果:

6f4a1a895579a971526897523a59814c.png
上面逐行写入的对应效果

紫色圆框圈出来的就是之前报错的地方 对应的其实就是前端的 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值