2015-01-02 5 views
1

Я читал главу о поисковых системах в программировании коллективного интеллекта и наткнулся на следующий фрагмент кода и попытался реализовать его в IPython. Тем не менее, я столкнулся ошибка:Как устранить следующую ошибку?

def getmatchrows(self,q): 
    fieldlist='w0.urlid' 
    tablelist='' 
    clauselist='' 
    wordids=[] 

    words=q.split() 
    tablenumber=0 

    for word in words: 
     wordrow=self.con.execute("select rowid from wordlist where word='%s'" % word).fetchone() 
     if wordrow!=None: 
      wordid=wordrow[0] 
      wordids.append(wordid) 
      if tablenumber>0: 
       tablelist+=',' 
       clauselist+=' and ' 
       clauselist+='w%d.urlid=w%d.urlid and '%(tablenumber-1,tablenumber) 
      fieldlist+=',w%d.location'%tablenumber 
      tablelist+='wordlocation w%d'%tablenumber 
      clauselist+='w%d.wordid=%d'%(tablenumber,wordid) 
      tablenumber+=1 
    fullquery="SELECT %s FROM %s WHERE %s"%(fieldlist,tablelist,clauselist) 
    cur=self.con.execute(fullquery) 
    rows=[row for row in cur] 
    return row,wordids 

Я получил следующее сообщение об ошибке:

TypeError         Traceback (most recent call last) 
<ipython-input-25-e5fade95f22f> in <module>() 
----> 1 e.getmatchrows('data analysis') 

C:\Users\Blue\Anaconda\searchengine.pyc in getmatchrows(self, q) 
    128           tablelist+=',' 
    129           clauselist+=' and ' 
--> 130           clauselist+='w%d.urlid=w%d.urlid and '%tablenumber- 1,tablenumber 
131         fieldlist+=',w%d.location'%tablenumber 
132         tablelist+='wordlocation w%d'%tablenumber 

TypeError: unsupported operand type(s) for &: 'str' and 'tuple' 
+1

В следе, после '%' есть нет скобки, это нормально? – fredtantini

+0

Эй, ты изменил этот вопрос? –

ответ

0

Помещенные скобках в строке 130:

tablenumber-1,tablenumber>>(tablenumber1,tablenumber) 
Смежные вопросы