BTC価格を取得してみましょう。
BTC価格を取得するAPIを公開している取引所は複数ありますが、今回はZaifから取得します。
前の記事Anaconda Navigatorを参照し、qtconsoleを起動して、下記を入力してください。
[python]
import requests
r = requests.get('https://api.zaif.jp/api/1/ticker/btc_jpy')
json = r.json()
print('BTC価格(Zaif): ' + str(json["last"]) + ' 円')
[/python]
下記のように出力されました。207万円ぴったりのようですね。
BTC価格(Zaif): 2070000.0 円
解説
では、中身を解説します。
ZaifAPIドキュメントはこちら(別ウィンドウで開きます)です。
大きく分けて、4種類のAPI群があります。
[table id=2 /]
今回は 「1 現物公開API」 を使用しています。Zaifのアカウントを作らなくても誰でも使えます。
アカウントが必要なAPIに関してはまたいつか説明します。(TODO)
まず1行目
[python]
import requests
[/python]
これは、requestsライブラリをインポートします。
requestsは、HTML通信を簡単に使えるようにまとめてくれたソースコードだと思ってください。これを使わずに、HTML通信部分も自分で書こうとすると、とても大変です。
ライブラリをインポートすることで、誰かが用意してくれたソースコードを使えるようになります。
[python]
r = requests.get('https://api.zaif.jp/api/1/ticker/btc_jpy')
[/python]
ここではいよいよAPIを使用しています。
先程インポートしたrequestsライブラリはgetという関数を提供していますので、それを使います。
get関数は、1つ目の引数urlに渡したURLに対してGETリクエストを送り、Responseオブジェクトを戻します。
requests.
get
(url, **kwargs)
Sends a GET request. Returns Response
object.
Parameters: |
|
---|
引用元
http://requests-docs-ja.readthedocs.io/en/latest/api/ (別ウィンドウで開きます)
URLの作り方ですが、APIドキュメントの共通情報(別ウィンドウで開きます)を開いてみてください。
今回は
https://api.zaif.jp/api/1/ticker/btc_jpy
というURLを指定しています。
これはエンドポイントである 「https://api.zaif.jp/api/1/」 に 「ticker」 というAPIをつなげたものです。
次に、APIドキュメントの個別情報 - ticker (別ウィンドウで開きます)を開いてみてください。
/ticker/{currency_pair}
とありますね。今回は currency_pair に btc_jpy を指定したわけです。1BTCが何円か、という指定ですね。イーサリアムの価格を知りたければ、eth_btc を指定すればOKです。
[python]
json = r.json()
[/python]
先程、getはResponseオブジェクトを戻します、と説明しました。しかし、APIドキュメントの共通情報(別ウィンドウで開きます)には、戻り値はjson形式となっています、と記載があります。
Responseオブジェクトは、上記のように json 関数を提供しており、json形式に変換してくれるのです。便利ですね。
これで、欲しかったjson形式の戻り値を取得することが出来ました。
ちょっとここで、qtconsoleに戻って json と入力して実行してみてください。
json形式の中身が全て出力されます。
json形式の中でもいろいろな種類があるのですが、今回はobject形式のjsonとなっています。名前と値のセットがカンマ区切りでいくつか並んでいるのが、object形式です。
表にすると分かりやすいのではないでしょうか。
[table id=3 /]
[python]
print('BTC価格(Zaif): ' + str(json["last"]) + ' 円')
[/python]
最後に出力をしています。先程は json とだけ入力して実行すると、全てが出力されましたが、"last" を指定することによって、終値だけを出力しています。
さて、いかがでしたでしょうか?
HTMLって何? とか jsonって何? とか色々疑問はあると思いますが、それを理解出来なくても、BTC価格を取得することは出来ます。
まずは手を動かして実際にBTC価格を取得してみましょう。
過去24時間の高値と安値の差を表示してみたり、買気配値と売気配値の差を表示してみたりしてみてください。
→答え合わせはこちら