为什么在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')