def parsePlayer(self,item,response): #this one works like it should
item['playerurl'] = re.findall(r'"[^"]*"',"".join(item['playerurl']))
print(item['playerurl'])
def parsePlayer(self,item,response): #this one does not work like it should
item['playerurl'] = self.playerurls(item['playerurl'])
print(item['playerurl'])
def playerurls(*exlist):
listed = []
sampString = "".join(exlist)
listed = re.findall(r'"[^"]*"',sampString)
return listed
我正在尝试创建一个能够执行第一个parsePlayer函数的函数。我希望playerurls函数可以获取一个列表,然后执行一个正则表达式函数来提取引号中字符串的所有部分,这不是我遇到麻烦的地方。
我在编写playerurls函数时遇到了麻烦。我不断得到这个:“exceptions.TypeError:序列项0:期望的字符串,找到NbastatsSpider”@
sampString = "".join(exlist)
NbastatsSpider是填充我创建的项目的'playerurl'字段的蜘蛛的名称。我不明白为什么我收到这个错误,因为我传入一个列表,把它变成一个字符串,对字符串执行正则表达式函数,最后返回一个列表。将列表(item ['playerurl'])传递给函数时必定存在错误。无论是那个还是我都在迷惑自己使用'自我'。参数。
答案 0 :(得分:2)
应该是:
def playerurls(self, exlist):
您需要self
参数,因为您将其称为self.playerurls
。在*
参数之前,您不需要exlist
:当列表的元素作为单独的参数传递时使用。
我不确定您为何首先使用self
。这些函数都不是指self
的任何实例变量。