将类从linux迁移到Windows的问题 - Urllib.request

时间:2013-01-26 16:05:54

标签: python linux windows urllib

我的这个课程在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上完全相同的代码而没有问题。

1 个答案:

答案 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可能还有其他一些注意事项,这两个平台具有相同的代码库,而您并未完全考虑这些代码库。