2012-11-14 7 views
0

J'essaie d'insérer dans un dictionnaire certaines valeurs de l'API Streaming. L'un d'entre eux est la valeur du terme utilisé dans la méthode de filtrage utilisant le mot-clé track =. J'ai écrit du code, mais sur l'instruction print, j'obtiens une erreur "Encountered Exception: 'term'". Ceci est mon code partiel:Modèle correspondant API Twitter Streaming

for term in setTerms: 
    a = re.compile(term, re.IGNORECASE) 
    if re.search(a, status.text): 
     message['term'] = term 
    else: 
     pass 

     print message['text'], message['term'] 

Voici le code du filtre:

setTerms = ['BBC','XFactor','Obama'] 
streamer.filter(track = setTerms) 

Il correspond à la chaîne, mais je dois aussi être en mesure de faire correspondre tous les cas, par exemple. BBC devrait également correspondre aveC#BBC, @BBC ou BBC1 etc

Donc, ma question comment pourrais-je obtenir un terme dans setTerms par exemple BBC pour faire correspondre toutes ces instances dans si re.search (terme, status.text)?

Merci

+0

Donc, pour faire simple, vous voulez juste faire correspondre les instances qui contiennent les sous-chaînes de votre liste 'setTerm'? Peut-être simplement utiliser l'opérateur' in' http://stackoverflow.com/questions/3437059/does-python-have-a-string-contains-method? manquer quelque chose ? –

Répondre

0

Avez-vous essayé de mettre tous vos termes de recherche dans une seule expression?

-à-dire setTerms = '(BBC) | (XFactor) | (Obama)?, Voyant alors si elle correspond à la chaîne entière de morceau (pas seulement mot individuel

Questions connexes