Ich versuche derzeit Tweets für ein Projekt mit Python, Elasticsearch und Kibana zu streamen.IndentationError mit Python
Während ich mein Python-Skript ausführe, habe ich einen IndentationError und ich verstehe nicht warum, kann mir jemand durch dieses Problem helfen?
Vielen Dank im Voraus.
Mein Python-Skript:
import json
import tweepy
import textblob
import elasticsearch
from tweepy import OAuthHandler, Stream
from tweepy.streaming import StreamListener
from textblob import TextBlob
from elasticsearch import Elasticsearch
consumer_key = '...'
consumer_secret = '...'
access_token = '...'
access_token_secret = '...'
elastic_search = Elasticsearch()
class MyStreamListener(StreamListener):
def on_data(self, data):
dict_data = json.loads(data)
tweet = TextBlob(dict_data["text"])
print(tweet.sentiment.polarity)
if tweet.sentiment.polarity < 0:
sentiment = "negative"
elif tweet.sentiment.polarity == 0:
sentiment = "neutral"
else:
sentiment = "positive"
print(sentiment)
elastic_search.index(index="sentiment",
doc_type="test-type",
body={"author": dict_data["user"]["screen_name"],
"date": dict_data["created_at"],
"message": dict_data["text"],
"polarity": tweet.sentiment.polarity,
"subjectivity": tweet.sentiment.subjectivity,
"sentiment": sentiment})
return True
def on_failure(self, status):
print(status)
if __name__ == '__main__':
listener = MyStreamListener()
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
stream = Stream(auth, listener)
stream.filter(track=['congress'])
# user_choice = input("Please choose a Hashtag... : ")
# retrieve_tweets = api.search(user_choice)
Die Fehlermeldung:
File "sentiment.py", line 21
tweet = TextBlob(dict_data["text"])
^
IndentationError: unindent does not match any outer indentation level
Sind Sie Tabs, durch Zufall mit? suche und ersetze '\ t' mit 4 Leerzeichen überall. – Elazar
Siehe zum Beispiel [hier] (https://stackoverflow.com/questions/17076302/possible-mixed-indentation-in-python) – Elazar
Hallo @Elazar, ich verwende keine Tabs und wie Sie sagten, ich habe 4 Leerzeichen –