Как открыть ответ JSON на мой поисковый запрос в Твиттере?
У меня есть этот скрипт Python для командной строки с поддержкой rauth:
import json
from rauth import OAuth1Service
twitter = OAuth1Service(
name='twitter',
consumer_key='[REDACTED]',
consumer_secret='[REDACTED]',
request_token_url='https://api.twitter.com/oauth/request_token',
access_token_url='https://api.twitter.com/oauth/access_token',
authorize_url='https://api.twitter.com/oauth/authorize',
base_url='https://api.twitter.com/1.1/')
request_token, request_token_secret = twitter.get_request_token()
authorize_url = twitter.get_authorize_url(request_token)
print 'Copy-paste this URL into your browser: ' + authorize_url
twitter_pin = raw_input('Enter PIN: ')
session = twitter.get_auth_session(request_token,
request_token_secret,
method='POST',
data={'oauth_verifier': twitter_pin})
search_results = session.get('search/tweets.json', params={'q':'example'})
print json.dumps(search_results)
rauth выполняет всю обработку OAuth, и я получаю объект взамен. Я пытаюсь напечатать его, и оно говорит Response [200] (в заостренных скобках), указывая на успех. Я пытаюсь использовать Python json.dump, чтобы распечатать содержимое, и я получаю:
TypeError: <Response [200]> is not JSON serializable
Я, наверное, пропускаю что-то очень маленькое. Что с этим не так?
Соответствующая документация Twitter Соответствующая документация rauth
1 ответ
rauth
библиотека строится на вершине requests
библиотека, возвращающая специализированный requests.Session
объект.
Объект, возвращаемый session.get()
это requests.Response
объект; позвонить response.json()
метод для получения данных ответа JSON в виде структуры Python:
print search_results.json()
Нет необходимости возвращать это обратно в строку JSON, работайте напрямую со структурой данных Python.