2

Django [python] Web アプリケーションで Twitch API を使用しようとしています。リクエストを送信して情報を取得したいのですが、何をしているのかよくわかりません。

curl -H 'Accept: application/vnd.twitchtv.v2+json' -X GET \
    https://api.twitch.tv/kraken/streams/test_channel

この python を変換するにはどうすればよいですか?

ありがとう

4

2 に答える 2

7

組み込みの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"}
于 2013-07-09T23:40:09.430 に答える
2

私は通常、(ブロックする)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

于 2013-07-10T00:22:50.013 に答える