Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.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中解包**KWARG时出现TypeError_Python_Typeerror_Keyword Argument - Fatal编程技术网

为什么在python中解包**KWARG时出现TypeError

为什么在python中解包**KWARG时出现TypeError,python,typeerror,keyword-argument,Python,Typeerror,Keyword Argument,我粘贴了与我的问题相关的代码的一小部分。 我正在将一个dict传递给类的itemSearch方法,但是我得到了一个TypeError def itemsearch(self,*args,**params): #items = self.api.item_search('Books', Publisher="O'Reilly", Author="James Shore",Year="2014",limit=10) print args print p

我粘贴了与我的问题相关的代码的一小部分。 我正在将一个
dict
传递给类的
itemSearch
方法,但是我得到了一个
TypeError

def itemsearch(self,*args,**params):
        #items = self.api.item_search('Books', Publisher="O'Reilly", Author="James Shore",Year="2014",limit=10)
        print args
        print params
        itemSearch=self.api.item_search(*args,**params)
        print [item.ASIN for items in itemSearch.Items.Item]
        self.listASIN=[(item.Title,item.ASIN) for items in itemSearch.Items.Item]

amazonsearch=AmazonLookup()
params={'SearchIndex':'Electronics','Condition':'New','Keywords':'Macbook pro 13 retina','MinimumPrice':'600',
        'MaximumPrice':'2000','Sort':'-price'}
print params
amazonsearch.itemsearch(**params)

I get
TypeError:item_search()至少接受2个参数(给定1个)

问题出在这一行:

itemSearch = self.api.item_search(*args, **params)
显然,
item\u search
函数首先需要一个位置参数。位置参数是从
args
填充的,但是
args
是一个空列表,因为您仅使用未打包的字典调用
itemsearch
函数:

amazonsearch.itemsearch(**params)

因此,您还需要至少提供第一个参数(如您注释掉的示例:
'Books'
)。

您能显示完整的回溯吗?还有
项目搜索()
!=
itemsearch()
这一个确实有效<代码>api.项目搜索('Blended',关键字='Keanu Reaves')