我的这个课程在Linux中表现完美。
class UrlRequestor(object):
def __init__(self, url, headers, data):
self.url = url
self.headers = headers
self.request = urllib2.Request(url)
self.data = data
self.data = data
if self.data:
self.request.add_data(self.data)
for headerName, headerContent in self.headers.iteritems():
self.request.add_header(headerName, headerContent)
def open(self):
self.content = urllib2.urlopen(self.request)
def getHeader(self, headerName):
return self.content.info().getheader(headerName)
def getReturnData(self):
return dict(json.loads(self.content.read()))
def getRawReturn(self):
return self.content.read()}
我一直试图在Windows上运行 - 包括缩进在内的很多错误我终于陷入了困境。
我显然错过了add_data方法的'位置参数'。虽然我认为这是一个更大问题的症状。
以下是我的代码。
class UrlRequestor(object):
def __init__(self, url, headers, data):
self.url = url
self.headers = headers
self.request = urllib2.Request(url)
self.data = data
self.data = data
if self.data:
self.request.add_data(self.data)
for headerName, headerContent in self.headers.iteritems():
self.request.add_header(headerName, headerContent)
def open(self):
self.content = urllib2.urlopen(self.request)
def getHeader(self, headerName):
return self.content.info().getheader(headerName)
def getReturnData(self):
return dict(json.loads(self.content.read()))
def getRawReturn(self):
return self.content.read()
我不介意阅读,我不介意指向正确的方向。在这一点上,我很难过,有点指点也不会受伤。
非常感谢你们。
修改的 * ** * ** * ** * ** * ** * ** * ** * ** * ** * ****
为了将来的信息,请检查python版本,安装2.7.3并运行与Linux上完全相同的代码而没有问题。
答案 0 :(得分:1)
如果您使用的是Python 2.7.x,请将import urllib2
放在文件的开头。
如果您正在使用Python 3.x,那么observe the note关于Python 3.x中urllib
库系列的更改:
注意:urllib2模块已经拆分为Python 3中名为urllib.request和urllib.error的几个模块。将源代码转换为Python 3时,2to3工具将自动调整导入。
对于您的情况,您可以在urllib.request
。
或者,在您的Windows机器上,选择使用Linux机器上的相同版本的Python。在两个平台上使用Python 3.x可能还有其他一些注意事项,这两个平台具有相同的代码库,而您并未完全考虑这些代码库。