2017-08-12 3 views
1
tweets = re.findall(r "'text':+.*'truncated'", tweets) 

print (tweets) 

'text' abzurufen: "RT @premierleague: @ Wayne Rooney die Jagd auf ist", 'abgeschnittene': wie obenregex Mit Hilfe spezieller Text

Ich habe eine Reihe von Text und ich möchte den Tweet abrufen, der zwischen 'text': and 'truncated' liegt.

Ich habe den obigen Code geschrieben, aber die Fehlermeldung

tweets = re.findall(r "'text':+.*'truncated'", tweets) 
               ^
SyntaxError: invalid syntax 

ich findall verwende erhalten als die Tweets wiederholt werden und ich möchte die Tweets alle aus der findall Suche abzurufen.

Danke.

+2

Sind Sie sicher, dass Sie die JSON-Struktur Ihres Strings nicht ausnutzen und das 'json'-Modul verwenden möchten? – Jacquot

Antwort

1

Die ungültige Syntaxfehler ist aufgrund der weißen Raum zwischen r und der Regex:

tweets = re.findall(r"'text':+.*'truncated'", tweets) 
print(tweets) 

kehrt:

['\'text\': "RT @premierleague: \xf0\x9f\x94\xb5 @WayneRooney\'s chase is on \xf0\x9f\x91\x80", \'truncated\''] 

Zum Abrufen nur den Text:

tweets = re.findall(r"'text':+(.*)'truncated'", tweets) 
print(tweets) 

gibt zurück:

"RT @premierleague: @WayneRooney's chase is on ", 
+0

Ja, und Sie können runde Klammern verwenden, um den Text zu erhalten. – decadenza

+0

Danke für die heads up r.e. der weiße Raum. Ich erwartete, dass es dann den ganzen Text entfernen würde, den ich nicht wollte, aber es gab gerade die API-Suche zurück. –

+0

@LukeSimpson Ich habe die obige Antwort aktualisiert, um nur den Text abzurufen. Beachten Sie, dass es wahrscheinlich einfacher ist, den JSON zu analysieren, wenn das möglich ist (mit 'json.loads' in Python). – pchaigno