2016-07-10 6 views
-1

Vielleicht können Sie mir helfen. Dieser folgende Python-Code ruft Twitter-Streaming-Daten ab und stoppt, wenn 1000 Tweet-Daten vorliegen. Es funktioniert, aber gibt die Felder "created_at, screen_name und text" getrennt durch Tab zurück. Stattdessen möchte ich die Daten im JSON-Format erhalten. Wie kann ich den Code einstellen, um die Daten in JSON zu formatieren?Twitter Streaming Formatierung JSON Ausgabe

# Import the necessary package to process data in JSON format 
try: 
    import json 
except ImportError: 
    import simplejson as json 

# Import the necessary methods from "twitter" library 
from twitter import Twitter, OAuth, TwitterHTTPError, TwitterStream 

# Variables that contains the user credentials to access Twitter API 


CONSUMER_KEY = '7pWHWtYlXM9ayJfUKv2F8v84B' 
CONSUMER_SECRET = 'Dfcx10Px77Ggn0qGbCHc4TZC7M2IHsXpqk9CaGiCLzcr9VMX5n' 
ACCESS_TOKEN = '245080367-zuLrIbxblOnocashgku9dsmDKgy3R7uU0VCTIRDx' 
ACCESS_SECRET = 'wCx5ufD9Zft46hVjieLdv0af7p9DxUTsPgge9Zm2qelR9' 

oauth = OAuth(ACCESS_TOKEN, ACCESS_SECRET, CONSUMER_KEY, CONSUMER_SECRET) 

# Initiate the connection to Twitter Streaming API 
twitter_stream = TwitterStream(auth=oauth) 

# Get a sample of the public data following through Twitter 
#iterator = twitter_stream.statuses.sample() 

iterator = twitter_stream.statuses.filter(track="Euro2016", language="fr") 

tweet_count = 1000 
for tweet in iterator: 
    tweet_count -= 1 


    print (tweet['created_at'],"\t",tweet['user']['screen_name'],"\t",tweet['geo'], "\t",tweet['text']) 


    if tweet_count <= 0: 
     break 
+0

* "Es funktioniert aber gibt die Felder "created_at, screen_name und Text" getrennt durch Reiter" * - und? Genau darum bitten Sie. – jonrsharpe

+0

@jonrsharpe Ich möchte die Ausgabedaten im JSON-Format –

+0

Also ändern Sie den Code, um das zu tun, aber nicht überrascht sein, wenn es genau das tut, was es geschrieben ist. Hast du eine Frage? Vielleicht lesen [fragen]. – jonrsharpe

Antwort

1

können Sie importieren tweepy (Sie müssen es mit pip zuerst installieren) und überschreiben die listener class die Daten im JSON-Format ausgeben zu können. Hier ein Beispiel:

from tweepy import Stream 
from tweepy.streaming import StreamListener 

#Listener Class Override 
class listener(StreamListener): 
    def on_data(self, data): 
     try: 
      tweet = json.loads(data) 
      with open('your_data.json', 'a') as my_file: 
       json.dump(tweet, my_file) 
     except BaseException: 
      print('Error') 
      pass 

    def on_error(self, status): 
     print(statuses) 

my_listener=listener() 
twitterStream = Stream(oauth, my_listener) #Inizialize Stream object 

Sie können hier mehr über tweepy lesen: http://docs.tweepy.org/en/v3.4.0/streaming_how_to.html