TypeError:当使用tweepy从twitter推文中筛选哈希标记时,需要一个byteslike对象,而不是'str'

2024-04-25 12:46:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试使用tweepy收集有关冠状病毒的一些数据,我正在使用Python3.8,显然,正如我一直在阅读的内容一样,Python2中没有出现有关字节类型的问题。我的错误在这一行:

w.writerow(['timestamp','tweet\u text','username','all\u hashtags','followers\u count'])

如果有人能帮我修改代码,使其正常工作,我将不胜感激。注:第一次在stackoverflow上发布问题时,要温柔:)

代码:

def search_for_hashtags(consumer_key, consumer_secret, access_token, access_token_secret, 
hashtag_phrase):

#create authentication for accessing Twitter
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

#initialize Tweepy API
api = tweepy.API(auth)

#get the name of the spreadsheet we will write to
fname = '_'.join(re.findall(r"#(\w+)", hashtag_phrase))

#open the spreadsheet we will write to
with open('%s.csv' % (fname), 'wb') as file:

    w = csv.writer(file)

    #write header row to spreadsheet
    w.writerow(['timestamp', 'tweet_text', 'username', 'all_hashtags', 'followers_count'])

    #for each tweet matching our hashtags, write relevant info to the spreadsheet
    for tweet in tweepy.Cursor(api.search, q=hashtag_phrase+' -filter:retweets', \
                               lang="en", tweet_mode='extended').items(100):
        w.writerow([tweet.created_at, tweet.full_text.replace('\n',' ').encode('utf-8'), 
    tweet.user.screen_name.encode('utf-8'), [e['text'] for e in tweet._json['entities']['hashtags']], tweet.user.followers_count])
if __name__ == '__main__':
search_for_hashtags(consumer_key, consumer_secret, access_token, access_token_secret, hashtag_phrase)

Tags: thetotexttokenforsecretaccessconsumer