python open ascii codec cant_Python3.6 报错问题:'ascii' codec can't encode character
当我使用 urllib.request.urlopen 访问 http://api.map.baidu.com/telematics/v3/weather?output=json&location=北京&ak=**** 的时候,程序报错了:
1 #!D:/Program Files/Python36
2
3 importurllib.request4
5 classWeatherHandle:6
7 #初始化字符串
8 url = u"http://api.map.baidu.com/telematics/v3/weather?output=json&"
9
10 ak = u""
11
12 defgetWeather(self, city):13
14 url_like = self.url + 'location=' + city + '&ak=' +self.ak15
16 response =urllib.request.urlopen(url_like).read()17
18 print(response)
错误的信息提示主要集中在最下面的三行中,从这三行可以看出是编码问题,我经过了一番百度之后,一开始有人叫我使用 sys.getdefaultencoding() 这个方法来设置成 utf-8 编码格式,但我输出打印了一下,我当然的编码格式就是 utf-8:
1 importsys2 print(sys.getdefaultencoding());
如此可见,Python3.6 默认的编码就是 utf-8,Python2.X 的解决方法是不是这个,我没有进行尝试。
后来我又找了一篇文章,文章中说:URL 链接不能存在中文字符,否则 ASCII 解析不了中文字符,由这句语句错误可以得出 self._output(request.encode('ascii'))。
所以解决办法就是将URL链接中的中文字符进行转码,就可以正常读取了:
1 #!D:/Program Files/Python36
2
3 importurllib.request4
5 classWeatherHandle:6
7 #初始化字符串
8 url = u"http://api.map.baidu.com/telematics/v3/weather?output=json&"
9
10 ak = u""
11
12 defgetWeather(self, city):13
14 url_like = self.url + 'location=' + urllib.parse.quote(city) + '&ak=' +self.ak15
16 response =urllib.request.urlopen(url_like).read()17
18 print(response)
这样就不会出现上述的错误了。但是我们现在显示的是乱码,我们只需要在输出的时候,使用 decode("utf-8") 将结果集转化为 utf-8 编码,就能正常显示了:
1 #!D:/Program Files/Python36
2
3 importurllib.request4
5 classWeatherHandle:6
7 #初始化字符串
8 url = u"http://api.map.baidu.com/telematics/v3/weather?output=json&"
9
10 ak = u""
11
12 defgetWeather(self, city, time):13
14 url_like = self.url + 'location=' + city + '&ak=' +self.ak15
16 response =urllib.request.urlopen(url_like).read()17
18 print(response.decode('utf-8'))
以上就是我解决问题的方法了,由于小编是刚学 Python 不久,所以技术水平还很菜,如果上面有什么会误导大家的,希望大家能指正一下,小编会立刻修改。
python open ascii codec cant_Python3.6 报错问题:'ascii' codec can't encode character相关推荐
- python读取txt文件时,报错【utf-8 codec cant decode byte 0xcc】的解决办法
最近在学习正则表达式,想要统计[天龙八部]中各个主角出现的次数. 在读取文件的时候,提示下面错误: 原来下载的天龙八部txt文件的编码格式是[ANSI],所以读取报错了. 解决办法很简单,将文件的编码 ...
- python报错UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe8 in position 0 解决方案
python报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 0 解决方案 参考文章: (1)python报 ...
- 报错UnicodeEncodeError: ‘ascii‘ codec can‘t encode character ‘\u7b2c‘ in position 64: ordinal not in r
报错UnicodeEncodeError: 'ascii' codec can't encode character '\u7b2c' in position 64: ordinal not in r ...
- 解决Python报错UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 658: illegal multibyte
解决Python报错–UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 658: illegal multibyte ...
- Python报错:‘unicodeescape‘ codec can‘t decode bytes in position 2-3: truncated \UXXXXXXXX escape
Python报错:'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 问题原因 ...
- Python报错UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte
Python报错UnicodeDecodeError: 'gbk' codec can't decode byte,这个错误是做NLP的小伙伴常见的一个错误,报错原因是读取的文件中有中文. 核心思路: ...
- pip安装报错:'ascii'码不能解码,安装路径有中文
转载自:https://blog.csdn.net/u013948858/article/details/77800663 [python]pip安装报错UnicodeDecodeError: 'as ...
- import configparser config.read(config_path) 报错 UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x
import configparser config.read(config_path) 报错 UnicodeDecodeError: 'gbk' codec can't decode byte 0x ...
- ubuntu18.04安装python的mysqlclient==1.4.6报错ERROR Command errored out with exit status 1python setup
安装python的mysqlclient==1.4.6报错 环境: ubuntu18.04 python 3.7.2 Django 2.2 想要使用Django来操作MySQL,报错: LookupE ...
最新文章
- python爬虫执行scrapy crawl demo出现: import win32api ModuleNotFoundError: No module named 'win32api'错误
- linux如何修改权限详解
- 明天是你的生日~~~
- java04376_Java - jdbc mybatis
- sqlserver服务启动后停止,传递给数据库 'master' 中的日志扫描操作的日志扫描号无效...
- 3、构建并安装PHP扩展
- B9.流行的框架与新技术
- lisp 任意点 曲线距离_lisp程序能求多段线上任意一点到其中一个端点的距离,,每次要量桩号很烦...哪位大侠给个..谢谢了...........
- Redis 6.0 源码阅读笔记(1) -- Redis 服务端启动及命令执行
- PHP 短信验证码:发送及验证
- Json转对象 调用toBean
- 测试基础知识1 》》软件测试入门
- 阿里云ODPS升级为一体化大数据平台 满足用户多元化数据计算需求
- Spring Tips: The Wavefront Observability Platform
- 摘录的Tim Urban关于拖延症的总结
- 18.网络技术——BGP的原理+实验题(后附练习题)
- Tinker热更新与AndResGuard资源混淆的结合
- 光纤收发器在安装使用过程所遇到的问题及解决办法
- su PK sudo
- 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——1.3 模型在设计中的作用...
热门文章
- java 垂直走马灯多行,Android实现图文垂直跑马灯效果
- NSIS脚本语言安装与编译
- python(c++)刷题+剑指offer
- Java并发编程实战~Actor 模型
- android 源码分析notification,# Notification 源码分析
- 数据可视化--pyecharts绘图
- matlab 未定义mat2gray,matlab中mat2gray函数用法
- java 线程由浅入深_Java多线程:由浅入深看synchronized的底层实现原理
- 最优化学习笔记(一)预备知识
- java8新特性(4)— Stream流