【问题标题】:TypeError: Can't convert 'bytes' object to str implicitly in python?TypeError:无法在 python 中将“字节”对象隐式转换为 str?
【发布时间】:2016-12-07 12:32:42
【问题描述】:

我正在尝试 Twitter API,但它给了我这个错误:

回溯(最近一次通话最后一次):
文件“D:/MAGIC/python/twitterdemo.pu.py”,第 23 行,在
text += status.text.encode('utf-8')
TypeError: 无法将 'bytes' 对象隐式转换为 str

这是我的代码:

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')

我做错了什么?

【问题讨论】:

  • 如果你对其进行编码,它之前是str,现在是bytes,但你需要一个str。所以删除.encode('utf-b') 再试一次。

标签: python python-3.x twitter


【解决方案1】:

您的text 被初始化为str,而您正尝试向其添加bytes 对象(这是status.text.encode('utf-8') 返回的对象)。将text 初始化为bytes 对象,该错误应该会消失:

text = b''

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

text += status.text

【讨论】:

    猜你喜欢
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 2013-05-17
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    相关资源
    最近更新 更多