twitterAPI Python错误:无法解码JSON对象

2 投票
1 回答
574 浏览
提问于 2025-04-18 05:25

我正在使用一个叫做twitterAPI的Python库,具体可以在这里找到:https://github.com/geduldig/TwitterAPI

    CONSUMER_KEY = ''
    CONSUMER_SECRET = ''
    ACCESS_TOKEN_KEY = ''
    ACCESS_TOKEN_SECRET = ''

    api = TwitterAPI(
                    CONSUMER_KEY,
                    CONSUMER_SECRET,
                    ACCESS_TOKEN_KEY,
                    ACCESS_TOKEN_SECRET,
                    # auth_type='oAuth1',
                    # proxy_url=None
    )
    r = api.request('account/verify_credentials')
    print(r.text)

这个库运行得很好,我得到了正确的响应,所以我尝试使用Twitter的过滤API,具体是'状态/过滤',可以在这里查看:https://dev.twitter.com/docs/api/1.1/post/statuses/filter,并且我使用了'follow'这个参数。

lst = api.request('statuses/filter', {'follow': 'some_user_id'}) # user_id是一个9位的数字,比如123456789

我打印了这个对象的类型,使用的代码是print(type(lst)),结果是:<class 'TwitterAPI.TwitterAPI.TwitterResponse'>

但是当我尝试访问这个类的方法时,出现了错误,提示No JSON object could be decoded。你可以在这里找到这个类的所有方法:http://twitterapi.readthedocs.org/en/latest/

我尝试了所有4种方法,比如print(lst.get_iterator()),还有print(lst.text),但都出现了同样的错误。
如果有人能帮忙,我将非常感激。

1 个回答

0

一旦你通过

lst = api.request('statuses/filter', {'follow': 'some_user_id'})

获得了一个TwitterResponse对象,你就可以使用

for item in lst:
  print(item['text'])

来遍历返回的状态流。

你还可以通过

print(lst.status_code)

来获取HTTP状态码。

不过,print(lst.text)是无法正常工作的,因为statuses/filter使用的是持续的流连接。

撰写回答