module ‘urllib’ has no attribute 'quote’

python 3.3.2报错:No module named ‘urllib2’ 解决方法
在python3.3里面,用urllib.request代替urllib2
ImportError: No module named 'ConfigParser
from configparser import ConfigParser#引用文件全部变成小写
AttributeError: module ‘urllib’ has no attribute 'quote’
urllib.quote改成urllib.request.quote
POST data should be bytes or an iterable of bytes. It cannot be of type str.
最后通过交流发现需要加在urlencode语句后加encode(encoding=‘UTF8’)
同时,在输出时,再使用decode(“utf-8”)进行解码,往往更加能够取的理想的效果。

 1 from urllib import request
 2 from urllib import parse
 3 
 4 url = "https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action="
 5 headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"}
 6 formdata = {
 7     'start': '0',
 8     'limit': '10'
 9 }
10 
11 data = parse.urlencode(formdata).encode(encoding="utf-8")
12 req = request.Request(url=url,headers=headers)
13 response = request.urlopen(req)
14 print(response.read().decode("utf-8"))

TypeError: Can‘t convert ‘bytes‘ object to str implicitly
解决方法:使用字节码的decode()方法。

示例:

str = ‘I am string‘
byte = b‘ I am bytes‘
s = str + byte
print(s)

这时会报错:TypeError: Can‘t convert ‘bytes‘ object to str implicitly

解决方法:

s = str + byte.decode()

python reload(sys)找不到,name ‘reload’ is not defined
在3.x中已经被毙掉了被替换为

import importlib
importlib.reload(sys)
sys.setdefaultencoding(“utf-8”) 这种方式在3.x中被彻底遗

关于 urllib.request.urlopen()的错误
这种错不常见,主要是由于我的文件名称含有http.py,这里应该是关键字敏感导致的错误。删除这个文件的子文件和修改文件名后就可以正常运行了!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DLANDML

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值