【Python】ビットコインの価格を取得する(Coincheck編)

Takuyaです。

今回は Python で仮想通貨の取引所であるCoincheckのAPIからビットコインの価格を取得してみたいと思います。

現在のビットコインの価格を取得するだけならアカウント登録は不要です。

確認環境

本記事に記載していることは次の環境で動作を確認しました。

  • Python 3.8.2
  • macOS Catalina 10.15.5
  • PyCharm 2020.1.1

必要なパッケージ

requests という外部パッケージを使うので、インストールが必要です。

下記コマンドでインストールしてください。

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)
Coincheck 現在のビットコインの価格 = 1,029,138 円
取得時間 = 2020-06-03 00:45:31

コードの解説

続いて、コードを細かく見ていきます。

import

今回はパッケージを2つ使っています。datetimerequests です。細かく言うと datetime はモジュール、requests はパッケージです。

datetime

from datetime import datetime

datetime は標準で入っている日付データを扱うモジュールです。
上記はdatetimeモジュールから datetimeクラス を import する」という意味になります。 Coincheck のAPI から返ってくる日時のデータが UNIX時間のため、見てすぐに理解できる日時に変換するために使います。

requests

import requests

requests は外部のパッケージです。パッケージは複数のモジュールをまとめたものです。Pycharm だと含まれているのモジュールが簡単に確認できます。

requestsパッケージに含まれているモジュール

.pyの拡張子がついた1つのファイルがモジュールになります。

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行、意味を理解して、それを積み重ねていくことが大事だと思っています。

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です