以上就是给各位分享pythonUnicodeEncodeError:'gbk'codeccan'tencodecharacter...,同时本文还将给你拓展bs4UnicodeEncodeError:
以上就是给各位分享python UnicodeEncodeError: 'gbk' codec can't encode character ...,同时本文还将给你拓展bs4 UnicodeEncodeError: ''gbk'' codec can''t encode character ''\xa0''、CDH 报错:UnicodeEncodeError: ''ascii'' codec can''t encode characters in position 0-11: or...、csv 基本操作, 报错解决(UnicodeEncodeError: ''utf-8'' codec can''t encode characters in position ...、pip install 安装报错:UnicodeEncodeError: ''ascii'' codec can''t encode characters in position XX 的解决办法等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:- python UnicodeEncodeError: 'gbk' codec can't encode character ...
- bs4 UnicodeEncodeError: ''gbk'' codec can''t encode character ''\xa0''
- CDH 报错:UnicodeEncodeError: ''ascii'' codec can''t encode characters in position 0-11: or...
- csv 基本操作, 报错解决(UnicodeEncodeError: ''utf-8'' codec can''t encode characters in position ...
- pip install 安装报错:UnicodeEncodeError: ''ascii'' codec can''t encode characters in position XX 的解决办法
python UnicodeEncodeError: 'gbk' codec can't encode character ...
使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\xa0‘ in position ... 这个问题。 网络上有很多类似的文件讲述如何解决这个问题,但是无非就是encode,decode相关的,这是导致该问题出现的真正原因吗?不是的。 很多时候,我们使用了decode和encode,试遍了各种编码,utf8,utf-8,gbk,gb2312等等,该有的编码都试遍了,可是编译的时候仍然出现: UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\xa0‘ in position XXX。 崩溃了。
在windows下面编写python脚本,编码问题很严重。
将网络数据流写入文件时时,我们会遇到几个编码:
1: #encoding=‘XXX‘ 这里(也就是python文件第一行的内容)的编码是指该python脚本文件本身的编码,无关紧要。只要XXX和文件本身的编码相同就行了。 比如notepad++ "格式"菜单里面里可以设置各种编码,这时需要保证该菜单里设置的编码和encoding XXX相同就行了,不同的话会报错
2:网络数据流的编码 比如获取网页,那么网络数据流的编码就是网页的编码。需要使用decode解码成unicode编码。
3:目标文件的编码 要将网络数据流的编码写入到新文件,那么我么需要指定新文件的编码。写文件代码如:
f.write(txt)
那么txt是一个字符串,它是通过decode解码过的字符串。关键点就要来了:目标文件的编码是导致标题所指问题的罪魁祸首。如果我们打开一个文件:
f = open("out.html","w")
在windows下面,新文件的默认编码是gbk,这样的话,python解释器会用gbk编码去解析我们的网络数据流txt,然而txt此时已经是decode过的unicode编码,这样的话就会导致解析不了,出现上述问题。 解决的办法就是,改变目标文件的编码:
f = open("out.html","w",encoding=‘utf-8‘)
解决。
bs4 UnicodeEncodeError: ''gbk'' codec can''t encode character ''\xa0''
Problem:
写爬虫时,出现了以下错误:
意思是Unicode编码错误,gbk编解码器不能编码\xa0字符。
爬取信息包含中文,使用BeautifulSoup库解析网页,用get_text()方法获取标签内的文本信息。
Debug:
解析:
当我们获取这个网页的源代码的时候,是将这个网页用utf-8的解码方式将其转换成对应的Unicode字符,
当我们使用print()函数将其打印到Windows系统的DOS窗口上的时候(DOS窗口的编码方式是GBK),自动将Unicode字符通过GBK编码转换为GBK编码方式的str。
- 出现问题(gbk编解码器不能编码\xa0字符)的原因?
网页源代码中的
的utf-8
编码是:\xc2\xa0
,解析后,转换为Unicode字符为:\xa0
,当使用print() 显示到DOS窗口上的时候,转换为GBK编码的字符串,但是\xa0
这个Unicode字符没有对应的 GBK 编码的字符串,所以出现错误。
Solve:
用空格 来替换 \xa0 ( ):
方法1:在网页源码上替换
在解析之前对r.text中的网页源码的 进行替换
soup = BeautifulSoup(html.replace('' '', '' ''), ''lxml'')
方法2:在解析为Unicode之后替代\xa0
在get_text()解析之后对u''\xa0''进行替换
job_detail = soup.select(''.job-detail'')[0].get_text().replace(u''\xa0'', '' '')
原文出处:https://www.cnblogs.com/liangmingshen/p/11703679.html
CDH 报错:UnicodeEncodeError: ''ascii'' codec can''t encode characters in position 0-11: or...
1.在CDH集群启动Hue服务时,出现了错误,如下图:
2.上图显示得知,是调用python文件(/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/core/management/base.py)时出现了字符集错误。
3.在master主机上修改该文件,增加py代码
import sys
reload(sys)
sys.setdefaultencoding(''utf8'')
如下图:
4.重启Hue服务,问题解决。
以上。
csv 基本操作, 报错解决(UnicodeEncodeError: ''utf-8'' codec can''t encode characters in position ...
最常用的一种方法,利用pandas包
import pandas as pd
#任意的多组列表
a = [1,2,3]
b = [4,5,6]
#字典中的key值即为csv中列名
dataframe = pd.DataFrame({''a_name'':a,''b_name'':b})
#将DataFrame存储为csv,index表示是否显示行名,default=True
dataframe.to_csv("test.csv",index=False,sep='','')
a_name b_name
0 1 4
1 2 5
2 3 6
同样pandas也提供简单的读csv方法
import pandas as pd
data = pd.read_csv(''test.csv'')
会得到一个DataFrame类型的data,不熟悉处理方法可以参考pandas十分钟入门
另一种方法用csv包,一行一行写入
import csv
#python2可以用file替代open
with open("test.csv","w") as csvfile:
writer = csv.writer(csvfile)
#先写入columns_name
writer.writerow(["index","a_name","b_name"])
#写入多行用writerows
writer.writerows([[0,1,3],[1,2,3],[2,3,4]])
index a_name b_name
0 1 3
1 2 3
2 3 4
读取csv文件用reader
import csv
with open("test.csv","r") as csvfile:
reader = csv.reader(csvfile)
#这里不需要readlines
for line in reader:
print line
错误: UnicodeEncodeError: ''utf-8'' codec can''t encode characters in position 232-233: surrogates not allowed
import csv
with open(file,''w'',encoding=''utf8'', errors=''surrogatepass'') as csvfile:
csv_writer = csv.writer(csvfile)
csv_writer.writerow(headers)
csv_writer.writerow(row)
pip install 安装报错:UnicodeEncodeError: ''ascii'' codec can''t encode characters in position XX 的解决办法
系统 win10
python 版本 2.7
使用 pip install pyyaml 时报错
解决办法如下:
** 在 Python 目录 Python27\Lib\site-packages 建一个文件 sitecustomize.py
里面的内容是:
import sys
sys.setdefaultencoding(''UTF-8'')
保存后重新执行 pip install pyyaml, 一切 ok
(请无视乱码)
关于python UnicodeEncodeError: 'gbk' codec can't encode character ...的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于bs4 UnicodeEncodeError: ''gbk'' codec can''t encode character ''\xa0''、CDH 报错:UnicodeEncodeError: ''ascii'' codec can''t encode characters in position 0-11: or...、csv 基本操作, 报错解决(UnicodeEncodeError: ''utf-8'' codec can''t encode characters in position ...、pip install 安装报错:UnicodeEncodeError: ''ascii'' codec can''t encode characters in position XX 的解决办法等相关内容,可以在本站寻找。
本文标签: