1 版本变化

Python2 之前使用 urllib2 库,在版本升级后出现问题,因为在3版本中库进行了整合,具体变动如下:

Py3.x:

删除了Urllin2库,统一更改为Urllib

Urllib库

变化:

在Pytho2.x中使用import urllib2——-对应的,在Python3.x中会使用import urllib.request,urllib.error。

在Pytho2.x中使用import urllib——-对应的,在Python3.x中会使用import urllib.request,urllib.error,urllib.parse。

在Pytho2.x中使用import urlparse——-对应的,在Python3.x中会使用import urllib.parse。

在Pytho2.x中使用import urlopen——-对应的,在Python3.x中会使用import urllib.request.urlopen。

在Pytho2.x中使用import urlencode——-对应的,在Python3.x中会使用import urllib.parse.urlencode。

在Pytho2.x中使用import urllib.quote——-对应的,在Python3.x中会使用import urllib.request.quote。

在Pytho2.x中使用cookielib.CookieJar——-对应的,在Python3.x中会使用http.CookieJar。

在Pytho2.x中使用urllib2.Request——-对应的,在Python3.x中会使用urllib.request.Request.

2 问题解决

在进行一个post请求时,postman 里面可以正常请求到数据,但是一模一样放到python里面就不行了,后面通过抓包发现了问题。

部分代码如下:

formdata = {

"analyzer": "ik_smart",

"text": text

}

data = parse.urlencode(formdata).encode(encoding='UTF8')

req = request.Request(url, headers=self.headers, data=data)

res = request.urlopen(req)

res = res.read()

以上方式会将json数据形成analyzer=ik_smart的形式,无法让接口正常解析。

修改为如下代码:

data = json.dumps(formdata)

data = bytes(data, "utf8")

req = request.Request(url, headers=self.headers, data=data)

res = request.urlopen(req)

res = res.read()

可以正常进行访问。

注:data = bytes(data, "utf8")  需要转成bytes,否则会报错。

python3 urllib3和urllib,python3的urllib3和requests及问题解决相关推荐

  1. python 3.7.4 shell_centos7上Virtualenv从python3.4升级到Python3.7.4

    目前我的虚拟环境python版本是3.4,  想升级到最新的3.7.4, 总结步骤如下: 首先激活当前env_py3环境, 并导出当前依赖包: Shell workon env_py3 pip fre ...

  2. python3.6手册中文版-python3.6文档中文版

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 新pythonmalloc环境变量现在可用于调试解释器内存分配与访问错误. 标准库 ...

  3. centos7 python3安装numpy_Centos7安装python3、numpy、scipy、matplotlib、pandas等

    centos 7 已经自带 python 2.7.15,这里需要安装 python 3 [root@pwm]# python Python 2.7.15 |Anaconda, Inc.| (defau ...

  4. python3 库pandas写入csv格式文件出现中文乱码问题解决方法

    python3 库pandas写入csv格式文件出现中文乱码问题解决方法 参考文章: (1)python3 库pandas写入csv格式文件出现中文乱码问题解决方法 (2)https://www.cn ...

  5. python3安装-Centos 安装 Python3

    Centos 的官方源默认是没有python3,所以不能直接yum安装. 下面介绍几个常用的方法在Centos下安装Python3. 一.epel 源安装 首先安装epel源: yum install ...

  6. centos安装python3小白_Centos7 安装Python3

    Centos7 安装Python3 一.linux安装Python3 1.安装相关依赖 [root@3f9 ~]# yum -y install zlib-devel bzip2-devel open ...

  7. ubuntu虚拟机apt报错:No module named ‘uaclient‘(替换所有的python3为/usr/bin/python3)xftp、xshell不能连接

    从ly那拷来虚拟机就出现这个问题了,而且xftp.xshell也不能连上 参考解决办法:ModuleNotFoundError: No module named 'uaclient' root@ubu ...

  8. python3.6.4_在ubuntu中将python3.4升级到python3.6中断pip

    我试图在我的机器上安装python3.6后,我目前有python3.4.然而,安装后尝试下python3.6运行pip给我的错误:在ubuntu中将python3.4升级到python3.6中断pip ...

  9. ubuntu18.04安装python3.7并将python3指向python3.7

    ubuntu18.04系统默认装了三个版本的python,如下: ubuntu18.04安装python3.7并将python3指向python3.7 参考此篇文章:https://blog.csdn ...

最新文章

  1. python实现选择排序
  2. HTML5标签的语义认知和理解
  3. OpenCV3.2+VS2013+Tesseract3.02.02配置
  4. ftpwebrequest 无法加载或初始化请求的服务提供程序_jvm之类加载机制
  5. 【转】浏览器缓存机制
  6. ftp ---- vsftpd安装卸载
  7. Linux内核写入s3c2440,Linux空板的系统写入
  8. Android开源项目:微信打飞机游戏源代码
  9. windows卸载服务
  10. 简单的喜欢最长远 平凡中的陪伴最心安 懂你的人最温暖
  11. 容器云系列之容器技术相关概念介绍
  12. ZOJ - Triathlon(线性规划+半平面交)
  13. 你看到的都是错的!——虚拟化技术的真相
  14. Webservice-2
  15. 18 - java基初 数组介绍 冒泡排序
  16. 与、或、非、异或,运算符巩固
  17. OEM的意思是什么?(收藏)
  18. 单位网站老是被劫持跳转到菠菜网站怎么办
  19. Learning a Similarity Metric Discriminatively with Application to Face Verification
  20. 江西省大学计算机专业,江西最好考的2所大学!计算机、财务专业省排名第三,力压一本!...

热门文章

  1. 新版TCGA表达矩阵提取简单版
  2. 全国省市区地址json
  3. (一百七十一) 探索softap和p2p interface优先级
  4. linux终端开启softap(开WiFi热点)
  5. Datawhale《深度学习-NLP》Task6- 简单神经网络
  6. python从零基础到项目实战中国水利水电出版社_Python编程从零基础到项目实战
  7. Reentrant vs Thread-safe
  8. Anaconda3安装教程及说明
  9. 非此即彼的逻辑错误_电影发行中的10个逻辑错误
  10. pycharm报错:lnvalid Python SDK