时间:2021-05-22
今天在pycharm(我用的python3)练习的时候,发现报了个AttributeError: module 'urllib' has no attribute 'urlencode'的错误。后来发现python2和python3的urllib结构不一样。
下面我用pycharm中python3演示一下:
错误例子:
import urllibimport urllib.parsewd = {"wd":"传智播客"}print(urllib.urlencode(wd))结果:
C:\Users\DELL\AppData\Local\Programs\Python\Python36-32\python.exe E:/untitled/Python_Test/urllib2Demo1.pyTraceback (most recent call last): File "E:/untitled/Python_Test/urllib2Demo1.py", line 5, in <module> print(urllib.urlencode(wd))AttributeError: module 'urllib' has no attribute 'urlencode'Process finished with exit code 1正确例子:
import urllibimport urllib.parsewd = {"wd":"传智播客"}print(urllib.parse.urlencode(wd))结果:
C:\Users\DELL\AppData\Local\Programs\Python\Python36-32\python.exe E:/untitled/Python_Test/urllib2Demo1.pywd=%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2Process finished with exit code 0因此需要记住urllib库在python2和python3之间是不同的。
普及一下知识点:
urllib库在python2与python3中的区别
Urllib是python提供的一个用于操作url的模块。
在python2中,有urllib库和urllib2库。在python3中,urllib2合并到urllib库中,我们爬取网页的时候,经常用到这个库。
升级合并后,模块中包的位置变化的地方较多。
以下是python2与python3中常用的关于urllib库的变化:
在python2中使用import urllib2————对应的,在python3中会使用import urllib.request,urllib.error
在python2中使用import urllib————对应的,在python3中会使用import urllib.request,urllib.error,urllib.parse
在python2中使用import urlparse————对应的,在python3中会使用import urllib.parse
在python2中使用urllib2.urlopen————对应的,在python3中会使用urllib.request.urlopen
在python2中使用urllib.urlencode————对应的,在python3中会使用urllib.parse.urlencode
在python2中使用urllib.quote————对应的,在python3中会使用urllib.request.quote
在python2中使用cookielib.CookieJar————对应的,在python3中会使用http.CookieJar
在python2中使用urllib2.Request————对应的,在python3中会使用urllib.request.Request
以上就是urllib相关模块从python2到python3的常见一些变化。
以上这篇解决python 3 urllib 没有 urlencode 属性的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在Python3中,将中文进行urlencode编码使用函数urllib.parse.quote(string,safe='/',encoding=None,e
前言在Python中,我们通常使用urllib中的urlencode方法将字典编码,用于提交数据给url等操作,但是在Python2和Python3中urlli
urllib3是一款Python3的HTTP客户端。Python标准库提供了urllib。在Python2中,另外提供了urllib2;而在Python3中,重
前言最近更新了Python版本,准备写个爬虫,意外的发现urllib库中属性不存在urlopen,于是各种google,然后总结一下给出解决方案问题的出现Att
python中使用requests模块http请求时,发现中文参数不会自动的URL编码,并且没有找到类似urllib(python3)模块中urllib.par