Django [python] Web アプリケーションで Twitch API を使用しようとしています。リクエストを送信して情報を取得したいのですが、何をしているのかよくわかりません。
curl -H 'Accept: application/vnd.twitchtv.v2+json' -X GET \
https://api.twitch.tv/kraken/streams/test_channel
この python を変換するにはどうすればよいですか?
ありがとう
組み込みのurllib2を使用する:
>>> import urllib2
>>> req = urllib2.Request('https://api.twitch.tv/kraken/streams/test_channel')
>>> req.add_header('Accept', 'application/vnd.twitchtv.v2+json')
>>> resp = urllib2.urlopen(req)
>>> content = resp.read()
Python 3.x を使用している場合、モジュールはurllib.requestと呼ばれますが、それ以外の場合はすべて同じことができます。
より単純な API を持つrequestsなど、 HTTP 用のサードパーティ ライブラリを使用することもできます。
>>> import requests
>>> r = requests.get('https://api.twitch.tv/kraken/streams/test_channel',
headers={'Accept': 'application/vnd.twitchtv.v2+json'})
>>> print(r.status_code)
422 # <- on my machine, YMMV
>>> print(r.text)
{"status":422,"message":"Channel 'test_channel' is not available on Twitch",
"error":"Unprocessable Entity"}
私は通常、(ブロックする)PythonアプリでのAPIリクエストにurllib2を使用します。
>>> import urllib2
>>> req = urllib2.Request('https://api.twitch.tv/kraken/streams/test_channel', None, {'Accept':'application/vnd.twitchtv.vs+json'})
>>> response = urllib2.urlopen(req)
その後、 で返されたテキストにアクセスできますresponse.read()
。そこから、好みのライブラリで JSON を解析できますが、通常はjson.loads(response.read())
.
ただし、これは 2.7 用であることを覚えておいてください。Python 3 を使用している場合、ライブラリは移動されており、これは次の場所にあります。urllib.request