2017-11-21 7 views
0

많은 트위터를 수집했습니다. 그런 다음 영어 트윗 만 출력하고 싶습니다. 트위터에는 영어 이외의 트윗이 포함될 수 있습니다. 하지만 영어 트위터를 받기 위해 for i in range (0,1000): if tweet['statuses'][i][u'lang']==u'en': 코드를 추가하면 그렇게 수집 할 수 없습니다. 그리고 오류가 없습니다.파이썬에서 데이터를 가져올 수 없습니다.

In [1]: runfile('C:/Users/Desktop/tweets.py', wdir='C:/Users/Desktop') 

그냥 실행되며 거기에 ("C:/Users/Desktop/A.txt") 데이터가 없습니다. 내 코드는 다음과 같습니다. 어떻게해야합니까?

try: 
    import json 
except ImportError: 
    import simplejson as json 

tweets_filename = 'C:/Users/Desktop/tweet.txt' #Original tweet 
tweets_file = open(tweets_filename, "r") 

for line in tweets_file: 
    try: 
     tweet = json.loads(line.strip()) 
     for i in range (0,1000): #This is the part for filtering English tweet 
      if tweet['statuses'][i][u'lang']==u'en': #Same part 
       if 'text' in tweet: 
        print (tweet['created_at']) 
        print (tweet['text']) 
        hashtags = [] 
        for hashtag in tweet['entities']['hashtags']: 
         hashtags.append(hashtag['text']) 
         print(hashtags) 

        output = "C:/Users/Desktop/A.txt" #Only English tweet path 
        out_file = open(output, 'a') 
        out_file.write(tweet['user']['name'] + "," + tweet['text'] + "\n \n") 
        out_file.close() 

except: 
    continue 
+4

명시 적으로 잡아서 침묵 시켜도 아무런 오류가 없습니다. ** 그렇게하지 마십시오 **. –

+2

다니엘이 말한 바. "bare"는 제외하고 사용하면 안됩니다. _ 항상 예외를 사용합니다. 그렇지 않으면 예상치 못한 것을 잡을 수 있습니다. "bare"를 제외하고는 Python이 귀에 손가락을 집어 넣고 "La la la, I can not hear you"라고 외치는 것입니다.) –

답변

0

이 경우 tweet_file의 줄을 읽어야합니다.

lines = tweet_file.readlines() 

for line in lines: 
    ... 

또한 오류를보고 싶습니다. 그들을 붙잡아 두지 마십시오. 좋은 독서 Zen of Python