Takuyaです。
今回は Python で仮想通貨の取引所であるCoincheck(コインチェック)のAPIからビットコインの価格を取得してみたいと思います。
現在のビットコインの価格を取得するだけならアカウント登録は不要です。
確認環境
本記事に記載していることは次の環境で動作を確認しました。
- Python 3.8.2
- macOS Catalina 10.15.5
外部ライブラリのインストール
requests
という外部ライブラリを使うので、pip 等でインストールが必要です。
pip を使用されている場合は、下記コマンドでインストールできます。
pip install requests
最初にコード全体を載せます
最初に最終的なコード全体を載せてしまいます。
下記コードで Coincheck における ビットコインの最新の価格 と 価格を取得した日時 を取得し表示しています。
from datetime import datetime
import requests
url = 'https://coincheck.com/api/ticker'
cc = requests.get(url).json()
cc_last = '{:,}'.format(int(cc['last']))
cc_timestamp = datetime.fromtimestamp(cc['timestamp'])
print("Coincheck 現在のビットコインの価格 =", cc_last, "円")
print("取得時間 =", cc_timestamp)
コードの解説
続いて、コードを細かく見ていきます。
import
今回はライブラリを2つ使っています。
(本ブログではライブラリ、パッケージ、モジュールは全てライブラリと呼ぶこととします。)
datetime
と requests
です。
datetime
は標準ライブラリなので、インストールは不要です。
datetime
from datetime import datetime
datetime
は Python に標準で備わっている日付データを扱うライブラリです。
上記は「 datetime ライブラリから datetime クラス を import する」という意味になります。 Coincheck の API から返ってくる日時のデータが UNIX 時間のため、見てすぐに理解できる日時に変換するために使います。
requests
import requests
requests
は外部(サードパーティ)のライブラリです。
requests
は Coincheck の API との HTTP 通信のために使います。
Coincheck API へアクセスし、データを取得する
続いて、Coincheck の API にアクセスし、価格と日時のデータを取得する部分です。
Coincheck の API に関しては公式サイトも参考にしてください。

該当するコードは次の箇所です。
url = 'https://coincheck.com/api/ticker'
cc = requests.get(url).json()
1行目はリクエスト先のURLを設定しています。
2行目では1行目で設定した「url」を使用して、HTTP の GET メソッドでアクセスし、レスポンスを「cc」に入れています。
ちなみにこの「cc」には次の値が入ります。
{
'last': 1030828.0,
'bid': 1030834.0,
'ask': 1031000.0,
'high': 1110000.0,
'low': 1018211.0,
'volume': 8680.74474171,
'timestamp': 1591117494
}
「cc」の型を確認すると辞書型になっています。
レスポンスの中を見ると、キー「last」が最新のビットコインの価格、キー「timestamp」が更新時間になっています。
その他のキーについては公式サイトを参照ください。
ちなみに、Webブラウザーで「https://coincheck.com/api/ticker」にアクセスしてもレスポンスが確認できます。
取得した値を加工する
次に取得した値を加工します。
ビットコインの価格を加工する
まずはビットコインの価格です。
cc['last']
「cc」は辞書型で、「last」がビットコインの最新価格のキーなので、キーを指定して値を取り出します。
int(cc['last'])
ビットコインの最新価格 cc[‘last’] が float 型になっていて、小数点が付いた値になっているので、float型から int型に変換します。
'{:,}'.format(int(cc['last']))
最近のビットコインの価格は100万円を超えてきています。7桁になるとパッと見、見辛いので、3桁づつカンマで区切った形式に変換します。‘{:,}’.format(整数) で整数の値を3桁づつカンマで区切れます。型は str型(文字列)になります。
cc_last = '{:,}'.format(int(cc['last']))
まとめると、
- float型から int型に変換
- int型から3桁づつカンマで区切った str型に変換
の2つの加工をして、変数「cc_last」に代入しています。
タイムスタンプを加工
次にタイムスタンプです。
cc['timestamp']
価格と同じようにキー「timestamp」を指定して、値を取り出します。
datetime.fromtimestamp(cc['timestamp'])
cc[‘timestamp’] はUNIX時間になっているので、UNIX時間から datetime型に変換します。
タイムゾーンは特に指定せずに日本時間になっていました。
print文で表示
最後は print文で価格と日時を表示しています。
print("Coincheck 現在のビットコインの価格 =", cc_last, "円")
print("取得時間 =", cc_timestamp)
まとめ
たった8行のコードですが、1行1行、意味を理解して、それを積み重ねていくことが大事だと思っています。
以上です。
コメント
コメント一覧 (1件)
[…] 参考にしたサイト:【Python】ビットコインの価格を取得する(Coincheck編) […]