python - 将 urllib2 python 代码转换为使用 urllib 模块

标签 python python-3.x urllib2 urllib

我有以下使用 urllib2 模块运行的代码,但我需要升级到 Python 3.x,这会阻止使用 urllib2。我知道它分为 urllib.request 和 urllib.error,但在阅读文档和其他相关问题后,我正在努力将以下代码转换为使用 urllib 模块。非常感谢任何帮助。

  opener = urllib2.build_opener(urllib2.HTTPHandler)
  request = urllib2.Request(url=event['ResponseURL'], data=data)
  request.add_header('Content-Type', '')
  request.get_method = lambda: 'PUT'
  url = opener.open(request)

最佳答案

您只需将 urllib2 替换为 urllib.request。您没有使用任何已移至其他 urllib.* 模块的内容:

import urllib.request

opener = urllib.request.build_opener(urllib.request.HTTPHandler)
request = urllib.request.Request(url=event['ResponseURL'], data=data)
request.add_header('Content-Type', '')
request.get_method = lambda: 'PUT'
url = opener.open(request)

您始终可以运行 2to3 command-line tool在你的 Python 2 代码上,看看它做了什么改变;默认操作是以统一差异格式在 stdout 上输出更改。

urllib 修复器还会在顶部为 urllib.errorurllib.parse 添加导入,因为它知道该代码导入的 urllib2 可能 需要 3 个 urllib.* 模块中的任何一个;在转换模块中的其余 urllib2 引用后,仅将导入限制为实际需要的导入是不够聪明的。

关于python - 将 urllib2 python 代码转换为使用 urllib 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54479600/

相关文章:

python - tensorflow 错误 : DLL load failed: The specified procedure could not be found

python - 哪个更好地测试 python 中的有效 url

python - 我们可以下载 python 的 urllib2 库吗?

python - Matplotlib 在渲染为 pdf 时不显示影线

python numpy : indexing broadcast

python-3.x - 将本地机器上的 MongoDB 迁移到 Mongo Atlas

python - 检查两个图像的 RGB 值之间的差异

python-3.x - Python 证书验证失败 : unable to get local issuer certificate

python - 从网页发送和接收数据 - Selenium WebDriver API

python - 打破python turtle中的嵌套循环