Python中的关键字参数
所以我尝试使用urllib2/BeautifulSoup从维基百科页面读取数据。我将此代码复制到终端:Python中的关键字参数,python,beautifulsoup,urllib2,keyword-argument,Python,Beautifulsoup,Urllib2,Keyword Argument,所以我尝试使用urllib2/BeautifulSoup从维基百科页面读取数据。我将此代码复制到终端: import urllib2 hdrs = { 'User-Agent': "Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11" } req = urllib2.Request("http://en.wikipedia.org/wiki/List_of_United_States_mobile_phone_co
import urllib2
hdrs = { 'User-Agent': "Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11" }
req = urllib2.Request("http://en.wikipedia.org/wiki/List_of_United_States_mobile_phone_companies" , headers = hdrs)
fd = urllib2.urlopen(req)
它很好用。但是,当我进行此调用(删除关键字参数)时:
我得到一个错误:
TypeError: must be string or buffer, not dict
为什么会发生这种情况?我认为关键字参数在函数调用中是可选的。谢谢你的帮助 来自文档:
urllib2.Request(url[, data][, headers][, origin_req_host][, unverifiable])
您可以这样做:
req = urllib2.Request("<url>", None, hdrs)
req=urllib2.Request(“,无,hdrs)
来自文档:
urllib2.Request(url[, data][, headers][, origin_req_host][, unverifiable])
您可以这样做:
req = urllib2.Request("<url>", None, hdrs)
req=urllib2.Request(“,无,hdrs)
的第二个参数是数据,而不是标题
class urllib2.Request(url[, data][, headers][, origin_req_host][, unverifiable])
要指定标题而不指定数据,应使用关键字参数形式。的第二个参数是数据,而不是标题
class urllib2.Request(url[, data][, headers][, origin_req_host][, unverifiable])
要指定标头而不指定数据,应使用关键字参数形式。urllib2请求函数的结构是:
urllib2.Request(url[, data][, headers][, origin_req_host][, unverifiable])
在python中调用函数时,您需要给出参数的名称,例如urllib2.request(headers=hdrs,url=my_url)
或者,您需要按照函数定义中给定的顺序提供参数
因此,在第二个函数中,python假定您将hdrs作为数据参数的值,因此数据类型不匹配。urllib2请求函数的结构是:
urllib2.Request(url[, data][, headers][, origin_req_host][, unverifiable])
在python中调用函数时,您需要给出参数的名称,例如urllib2.request(headers=hdrs,url=my_url)
或者,您需要按照函数定义中给定的顺序提供参数
因此,在第二个函数中,python假定您将hdrs作为数据参数的值,因此数据类型不匹配。仅当
数据
的default值确实是无
(确实是)。(只是想让人们对这个问题更加敏感,而不是在这种情况下。)前提是数据
的default值确实是无
(确实是)。(只是想让人们对这个问题保持敏感,而不是在这种情况下。)谢谢,我不太确定如何解释文档。[,parameter]的确切含义是什么(即为什么是这种类似列表的格式)?@MEric[,parameter]
的意思是:参数
是可选的。谢谢,我不太确定如何解释文档。[,parameter]的确切含义是什么(即为什么是这种类似列表的格式)?@MEric[,parameter]
的意思是:参数
是可选的。