python - 以 JSON 格式获取 Tweepy 搜索结果

标签 python json twitter tweepy

我希望使用 Tweepy 作为 JSON 从 Twitter 获得搜索结果。 我看到了here我应该向 Tweepy 代码中添加一个类以使该功能起作用。

但是当我查看 Tweepy 代码时,这就是我得到的:

class JSONParser(Parser):

    payload_format = 'json'

    def __init__(self):
        self.json_lib = import_simplejson()

    def parse(self, method, payload):
        try:
            json = self.json_lib.loads(payload)
        except Exception, e:
            raise TweepError('Failed to parse JSON payload: %s' % e)

        needsCursors = method.parameters.has_key('cursor')
        if needsCursors and isinstance(json, dict) and 'previous_cursor' in json and 'next_cursor' in json:
            cursors = json['previous_cursor'], json['next_cursor']
            return json, cursors
        else:
            return json

    def parse_error(self, payload):
        error = self.json_lib.loads(payload)
        if error.has_key('error'):
            return error['error']
        else:
            return error['errors']

所以我没有义务破解它的代码,因为该功能已经存在。

这是我的代码的样子:

from tweepy.parsers import JSONParser
for tweet in tweepy.Cursor(api.search,
                       q=hashtag,
                       include_entities=True,
                       rpp=100,
                       parser=tweepy.parsers.JSONParser()
                       ).items(limit):

这是我得到的错误:

   print (json.dumps(tweet))
  File "/usr/lib/python2.7/json/__init__.py", line 243, in dumps
    return _default_encoder.encode(obj)
  File "/usr/lib/python2.7/json/encoder.py", line 207, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/usr/lib/python2.7/json/encoder.py", line 270, in iterencode
    return _iterencode(o, 0)
  File "/usr/lib/python2.7/json/encoder.py", line 184, in default
    raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <tweepy.models.Status object at 0xb6df2fcc> is not JSON serializable

我应该从这个错误中理解什么?我该如何解决?

最佳答案

如果你这样使用 Cursor

import json
api = tweepy.API(auth)
max_tweets=100
query='Ipython'
searched_tweets = [status._json for status in tweepy.Cursor(api.search,  q=query).items(max_tweets)]
json_strings = [json.dumps(json_obj) for json_obj in searched_tweets]  

searched_tweets 是 JSON 对象列表,而 json_strings 是 JSON 字符串列表

关于python - 以 JSON 格式获取 Tweepy 搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24002536/

相关文章:

python - 如何识别缺失索引

python - python中代码与特定单词的映射

java - 如何停止 @ManyToOne JPA 中的重复对象?

twitter - 有人可以用简单的英语解释 Twitter API 速率限制吗?

javascript - “following” 在获取好友/列表 API Twitter 中 key 始终返回 false

python - 在 Flask 应用程序中使用 wtforms 选择字段获取 "Not a valid choice",我做错了什么?

python - 安装 Python 2.7.8(64 位)而不替换现有的 Python27 安装

json - 编码结构 slice 时向生成的 JSON 添加外部标记

jquery - 使用js函数的json结果刷新div内容

c# - 推特状态更新 : set source (C#)