2016-12-07 6 views
0

Я испытывал Twitter API, но это дает мне эту ошибку:TypeError: Невозможно преобразовать объект 'bytes' в str неявно в 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' before и теперь является 'bytes', но вам нужна' str'. Поэтому удалите '.encode ('utf-b')' и повторите попытку. –

ответ

3

text Ваш инициализируется как str, и вы пытаетесь добавить bytes объект (что status.text.encode('utf-8') возвращается) к нему. Инициализировать text как bytes объекта и что ошибка должна уйти:

text = b'' 

В качестве альтернативы, вы можете пропустить кодирования текста в целом, и он должен работать:

text += status.text 
+0

Спасибо, что работает сейчас –

Смежные вопросы