【问题标题】:Tweepy filter utf-8 encodingTweepy 过滤器 utf-8 编码
【发布时间】:2017-06-16 00:31:34
【问题描述】:

我一直在使用 Tweepy,当我执行 tweepy 的过滤器传递非 ascii 字符时出现错误。例如,使用以下命令,我得到以下错误:

我的代码:

auth = tweepy.OAuthHandler(apikey[0], apikey[1])
auth.set_access_token(apikey[2], apikey[3])
api = tweepy.API(auth)
sapi = tweepy.streaming.Stream(auth, CustomStreamListener())
sapi.filter(track=['eleições'])

我的错误:

Traceback (most recent call last):
  File "./TwitterStreamingAPI.py", line 81, in <module>
    sapi.filter(track=['eleições']) 
  File "/usr/local/lib/python2.7/dist-packages/tweepy/streaming.py", line 303, in filter
    encoded_track = [s.encode(encoding) for s in track]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 4: ordinal not in range(128)

如果有人帮助我解决它,我会很高兴。

提前致谢,

蒂亚戈。

【问题讨论】:

  • 你使用的是 Python3 还是 Python2?
  • 我使用的是 Python 2.7.6

标签: python twitter utf-8 tweepy


【解决方案1】:

尝试将过滤线替换为:

sapi.filter(track=[u'eleições'])

.encode() 可以从 unicode 转换为 str。一个人将.decode()str 转换为unicode。由于 tweepy 正在尝试.encode(),我们应该给它一个unicode

【讨论】:

  • 它似乎有效,但是当我收到推文并对其进行一些文本处理时,我遇到了同样的问题。此外,如果我使用变量而不是字符串 'eleições',我将如何工作?
  • 1) 如果您在收到推文后遇到类似问题,请发布 代码并询问与此相关的任何问题。 2) 如何使用变量取决于您如何创建变量。
  • 有关此主题的优秀建议,请参阅nedbatchelder.com/text/unipain.html
猜你喜欢
  • 2014-10-18
  • 2011-10-30
  • 2012-11-07
  • 2015-03-04
  • 2016-07-05
  • 1970-01-01
  • 2015-11-15
  • 2011-04-27
  • 2012-09-22
相关资源
最近更新 更多