2016-07-10 5 views
-1

어쩌면 나를 도울 수 있습니다. 이 다음 파이썬 코드는 트위터 스트리밍 데이터를 검색하고 1000 개의 짹짹 데이터가 있으면 멈 춥니 다. 그것은 작동하지만 "created_at, screen_name 및 text"필드를 탭으로 구분하여 반환합니다. 대신 JSON 형식으로 데이터를 가져오고 싶습니다. JSON에서 포맷 된 데이터를 가져 오기 위해 코드를 설정하려면 어떻게해야합니까?Twitter 스트리밍 형식 JSON 출력

# 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

* * "탭으로 구분" "그것은 작동하지만 필드를 반환"created_at, SCREEN_NAME, 텍스트를 - 그리고? 그것이 바로 당신이 요구하는 것입니다. – jonrsharpe

+0

@jonrsharpe JSON 형식의 출력 데이터를 사용하고 싶습니다. –

+0

그래서 코드를 변경하면됩니다.하지만 작성된 내용이 정확히 수행되면 놀라지 마십시오. 질문 있습니까? 어쩌면 [ask]를 읽으십시오. – jonrsharpe

답변

1

당신과 JSON 형식의 데이터를 출력 할 수 있도록 listener class를 오버라이드 (override) (당신이 핍 먼저 설치해야합니다) tweepy 가져올 수 있습니다. 다음은 그 예이다 :

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 

현재 tweepy에 대한 자세한 내용을보실 수 있습니다 : http://docs.tweepy.org/en/v3.4.0/streaming_how_to.html