未分類

BTC価格を取得する

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:
  • url – URL for the new Request object.
  • **kwargs – Optional arguments that request takes.

引用元
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時間の高値と安値の差を表示してみたり、買気配値と売気配値の差を表示してみたりしてみてください。

→答え合わせはこちら

-未分類

© 2024 プログラマの雑記帳 Powered by AFFINGER5