2016-12-07 85 views
0

我尝试了Twitter的API,但它给我这个错误:TypeError:无法将'bytes'对象隐式转换为python?

Traceback (most recent call last):
File "D:/MAGIC/python/twitterdemo.pu.py", line 23, in
text += status.text.encode('utf-8')
TypeError: Can't convert 'bytes' object to str implicitly

这里是我的代码:

import sys 
import operator 
import requests 
import json 
import twitter 
from watson_developer_cloud import PersonalityInsightsV2 as PersonalityInsights 

twitter_consumer_key = '' 
twitter_consumer_secret = '' 
twitter_access_token = '' 
twitter_access_secret = '' 

twitter_api = twitter.Api(consumer_key=twitter_consumer_key, consumer_secret=twitter_consumer_secret, access_token_key=twitter_access_token, access_token_secret=twitter_access_secret) 

handle = "@somethingsoemthing" 
statuses = twitter_api.GetUserTimeline(screen_name=handle, count=200, include_rts=False) 

text = "" 

for status in statuses: 
    print (status.text) 
    if(status.lang == 'en'): #Enligh tweets 
    text += status.text.encode('utf-8') 

我在做什么错?

+0

如果你编码它,它一直是' str'之前,现在是'bytes',但是你需要一个'str'在这里。所以删除'.encode('utf-b')'然后再试一次。 –

回答

3

您的text初始化为str,并且您正试图向其添加bytes对象(即status.text.encode('utf-8')返回的对象)。初始化textbytes对象和错误应该消失:

text = b'' 

或者,你可以完全跳过编码的文本,它应该工作:

text += status.text 
+0

感谢它现在的作品 –

相关问题