2017-01-22 13 views
-1
tweets_filename = 'fetched_tweets.json' 
tweets_file = open(tweets_filename, "r") 
tweets_data=[] 
df=pd.DataFrame(); 
for line in tweets_file: 
     tweet = json.loads(line) 
     tweets_data.append(tweet) 
     df['created_at'] = map(lambda tweet: time.strftime('%Y-%m-%d %H:%M:%S', time.strptime(tweet['created_at'],'%a %b %d %H:%M:%S +0000 %Y')), tweets_data) 
     df['user'] = map(lambda tweet: tweet['user']['screen_name'], tweets_data) 
df.to_csv('fetched_df.csv') 

CSVファイルは1行のみ示し、エントリがパンダのデータフレームにJSON変換

     created_at       user 
0 map object at 0x7f93cba73b00>  map object at 0x7f93cba73630> 

として示されているfetched_tweets.jsonファイルはコードデータを印刷する方法

class StdOutListener(StreamListener):  
    def on_data(self, data):  
     with open('fetched_tweets.json','a') as tf:  
      tf.write(data)  
     return True  
    def on_error(self, status):  
     print (status) 

if __name__ == '__main__':  
    #This handles Twitter authetification and the connection to Twitter Streaming API 
    l = StdOutListener() 
    auth = OAuthHandler(consumer_key, consumer_secret) 
    auth.set_access_token(access_token, access_token_secret) 
    stream = Stream(auth, l) 
    stream.filter(track=['fakenews']) 

を使用して作成されましたオブジェクトへのマップとすべての行を取得する方法を示すデータフレームから?

+0

次回は、規則に従ってコードを書いてください(すべてのコード行は4つのスペースで始まります。これは 'Alt + K'で行うことができます)。このポストのために私はあなたのためにそれをやった。また、元のデータファイルを生成したコードの代わりに、元のデータファイルのスニペットを提供する方がはるかに優れています。実際には、このデータファイルを深刻な努力なしに再作成することはできません。 –

答えて

0

おそらくmapとして

for line in tweets_file: 
     tweet = json.loads(line) 
     tweets_data.append(tweet) 

# decrease indent here, we don't want 
# the following lines to be in the loop 

df['created_at'] = list(map(lambda tweet: time.strftime('%Y-%m-%d %H:%M:%S', time.strptime(tweet['created_at'],'%a %b %d %H:%M:%S +0000 %Y')), tweets_data)) 
df['user'] = list(map(lambda tweet: tweet['user']['screen_name'], tweets_data)) 

をしたいは、Python 3での発電機では、明示的に列をパンダに割り当てるlistに変換する必要があります。

関連する問題