2016-04-25 47 views
1

我試圖過濾掉從結果列表返回的重複(轉推)的推文。我想我可以簡單地創建一個列表,並檢查推文的文本是否已經在列表中,如果沒有,我將它添加到列表中。在那裏我試圖這樣的代碼段如下 -Python Tweepy - 在列表中搜索字符串 - 可能的編碼問題

searched_tweets = tweepy.Cursor(api.search, q=search, since=since_time, include_entities=True).items(max_tweets) 

filtered_tweets =[] 

for filtered in searched_tweets: 

    if str(filtered_tweets).find(str(filtered.text.encode('ascii', 'ignore')))== -1: 
     filtered_tweets.append(filtered) 

這不工作,因爲它本質上總是返回true即使在帖子已經存在。我懷疑這是由於文本編碼?由於我正在搜索的內碼字符串基本上已經刪除了部分內容?任何關於如何解決這個問題的建議都會受到歡迎。

+0

耶或許編碼的問題。爲什麼不首先在'unicode'中(在'find'之前)編碼引用和子字符串? – ahmad

+0

謝謝ahmad,我不確定我能否(或知道如何),因爲我不能編碼列表,你的意思是每次循環訪問列表並將項目編碼爲ascii? –

+0

把這三行放在進口附近的第一行,把編碼全局改爲UTF-8:1)'import sys',2)'reload(sys)',3)'sys.setdefaultencoding('utf8' )'。 – ahmad

回答

0

更簡單的方法來過濾掉銳推將是:

for tweet in searched_tweets:  
    if hasattr(tweet,"retweeted_status"): 
     continue 

    #if you have reached this line, your tweet is not a retweet 
    #do stuff with your tweet