转换 urllib2 python 代码以使用 urllib 模块
Convert urllib2 python code to use urllib module
我有以下使用 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)
您可以随时 运行 您的 Python 2 代码上的 2to3
command-line tool 并查看它所做的更改;默认操作是以统一差异格式在 stdout 上输出更改。
urllib
修复器还会在顶部添加 urllib.error
和 urllib.parse
的导入,因为它知道导入 urllib2
的代码可以 需要 3 个 urllib.*
模块中的任何一个;在转换模块中的其余 urllib2
引用后,仅将导入限制为实际需要的导入是不够聪明的。
我有以下使用 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)
您可以随时 运行 您的 Python 2 代码上的 2to3
command-line tool 并查看它所做的更改;默认操作是以统一差异格式在 stdout 上输出更改。
urllib
修复器还会在顶部添加 urllib.error
和 urllib.parse
的导入,因为它知道导入 urllib2
的代码可以 需要 3 个 urllib.*
模块中的任何一个;在转换模块中的其余 urllib2
引用后,仅将导入限制为实际需要的导入是不够聪明的。