Python Tweepy - 在列表中搜索字符串 - 可能的编码问题

问题描述:

我试图过滤掉从结果列表返回的重复(转推)的推文。我想我可以简单地创建一个列表,并检查推文的文本是否已经在列表中,如果没有,我将它添加到列表中。在那里我试图这样的代码段如下 -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

更简单的方法来过滤掉锐推将是:

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