私はこれまでにこのrauthを利用したコマンドラインPythonスクリプトを持っています:
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処理を実行し、代わりにオブジェクトを取得します。印刷しようとすると、応答[200](先のとがった括弧内)と表示され、成功を示します。Pythonのjson.dumpを使用してコンテンツを印刷しようとすると、次のようになります。
TypeError: <Response [200]> is not JSON serializable
私はおそらく非常に小さなものを見落としています。これの何が問題になっていますか?
rauth
ライブラリはの上に構築requests
ライブラリの専門返し、requests.Session
オブジェクトを。
返されるオブジェクトは、session.get()
あるrequests.Response
オブジェクト。response.json()
メソッドを呼び出して、JSON応答データをPython構造として取得します。
print search_results.json()
それをJSON文字列にダンプして戻す必要はなく、Pythonデータ構造を直接操作します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加