python参数接受3个参数?哪里

python参数接受3个参数?哪里,python,arguments,urllib,Python,Arguments,Urllib,我正在使用google safebrowsing api和以下代码: def getlist(self, type): dlurl = "safebrowsing.clients.google.com/safebrowsing/downloads?client=api&apikey=" + api_key + "&appver=1.0&pver=2.2" phish = "googpub-phish-shavar" mal = "goog-malw

我正在使用google safebrowsing api和以下代码:

def getlist(self, type):
    dlurl = "safebrowsing.clients.google.com/safebrowsing/downloads?client=api&apikey=" + api_key + "&appver=1.0&pver=2.2"
    phish = "googpub-phish-shavar"
    mal = "goog-malware-shavar"
    self.type = type
    if self.type == "phish":
        req = urllib.urlopen(dlurl, phish )
        data = req.read()
        print(data)
生成以下回溯:

File "./test.py", line 39, in getlist
  req = urllib.urlopen(dlurl, phish )
File "/usr/lib/python2.6/urllib.py", line 88, in urlopen
return opener.open(url, data)
File "/usr/lib/python2.6/urllib.py", line 209, in open
return getattr(self, name)(url, data)
TypeError: open_file() takes exactly 2 arguments (3 given)
我做错了什么?我看不出有3个参数在哪里被传递。 顺便说一句,我打电话给你

x = class()
x.getlist("phish")

基本上,您没有在url中提供方法,因此Python假定它是一个文件url,并尝试将其作为文件打开——这不起作用(并在失败过程中抛出一条令人困惑的错误消息)

尝试:


函数urllib.urlopen打开一个由URL表示的网络对象进行读取。如果URL没有方案标识符,则会打开一个文件

在第88行调用相应的opener,这导致在209处调用opener open_文件

如果您查看函数:

  def open_file(self, url):
        """Use local file or FTP depending on form of URL."""

答:你应该提供一个类似的计划http://...

谢谢你们。我最初一直在使用httplib,最终决定使用urllib,但忘记了更改它。非常感谢。它帮了我的忙!!
  def open_file(self, url):
        """Use local file or FTP depending on form of URL."""