2017-06-05 3 views
1

Mein Code arbeitet für das Erhalten Echtzeit-Tweets von Tweepy Paket von Python eine stabile Form für die Ausgabe Tweets definieren. Ich möchte nur das Erstellungsdatum und Inhalt von tweet bekommen, damit ich wie unterWie in immer Echtzeit-Tweets von Python

def on_status(self, status): 
    tweet_text = status.text 
    tweet_created_date = str(status.created_at) 
    tweet_data = {'Created_at':tweet_created_date,'Text':tweet_text} 
    self.num_tweets += 1 
    if self.num_tweets < 10001: 
     with open('data.txt','a') as tf: 
      #tf.write(tweet_data + '\n') 
      tf.write(format(tweet_data) + '\n') 
     return True 
    else: 
     return False 

definieren Aber die Ausgänge zeigen nicht genau „created_at: ....., Text .....“. Es ändert sich, wenn sich das Erstellungsdatum ändert.

{'Text': 'RT @owen_author: Tiger Lily of Bangkok: a serial killer is on the loose in #BKK NaNoWriMo winner #Bangkoknoir #thri…', 'Created_at': '2017-06-01 22:18:28'} 
{'Text': 'RT @MidwestBG: #NP Silent Stranger @SilentStranger6 - Bangkok by Night (Alternate Mix) on @MidwestBG', 'Created_at': '2017-06-01 22:18:38'} 
{'Text': 'RT @IronWavesRadio: #NP Silent Stranger @SilentStranger6 - Bangkok by Night (Alternate Mix) on @IronWavesRadio', 'Created_at': '2017-06-01 22:18:42'} 
{'Created_at': '2017-06-02 02:34:31', 'Text': '"RT @EXOXIUMINMAMA: 17.06.10\n2017 BANGKOK SUPER LIVE \n#2017bkksuperlive \n\n#XIU의미소가우리에겐최고! \nXIUMIN's Smile is the BEST! \n\nรายละเอียด\n… "'} 
{'Created_at': '2017-06-02 02:34:39', 'Text': '(w1-59)Stamps,Thailand stamps,MNH,wild animals,art,minerals #thailand #bangkok'} 
{'Created_at': '2017-06-02 02:34:42', 'Text': 'RT @joeybirlem: reacting to cringey musicallys youtube video out tomorrow! bangkok vlog out on friday be readyyyyyyy'} 

Wie kann ich dieses Problem beheben für alle Tweets von den ganzen Tag in 1 gezeigten Form "created_at: ....., Text .....".
Ich bin sehr Anfänger, also brauche ich deine Hilfe.

Vielen Dank.

Antwort

1

Sie verwenden einen dict (Wörterbuch) -Typ zum Speichern der Tweets (tweet_data). Pythons Wörterbücher behalten nicht die Reihenfolge der gespeicherten Felder bei. So sehen Sie einige Instanzen mit {'Text': ..., 'Created_at': ...} während andere mit {'Created_at': ..., 'Text': ...}.

Wenn Sie die Reihenfolge der Felder erhalten möchten, können Sie OrderedDict-Typ:

tweet_data = OrderedDict([('Created_at', tweet_created_date), ('Text', tweet_text)]) 
Verwandte Themen