Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的关键字参数_Python_Beautifulsoup_Urllib2_Keyword Argument - Fatal编程技术网

Python中的关键字参数

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

所以我尝试使用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_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]
的意思是:
参数
是可选的。