python BTCJPY BTCUSD ETHJPY ETHUSD BCHUSD の価格をリアルタイム出力し続ける

少し前にかっこいいGUI型のプライスカードをご紹介ししました。

かっこいいのですが、変化がわからないので、今回はシンプルにターミナル画面出力をします。

liquidのtickerというAPIを叩くだけなので、何種類ものコインペアがある割には、超シンプルです。

表示するコインは 

liquidが扱っているコインペアで且つ、coin=[]のリストに入っているものだけを抽出します。

# Created:     21/05/2021
import requests
import json
import datetime
import time
from rich import print #色をつけるモジュール
#抽出するコインペアのリスト
coin=['BTCUSD','BTCJPY','ETHUSD','ETHJPY','XRPUSD','BCHUSD','LTCUSD','FTXUSD','BATUSD','ATOMUSD']
try:
    while True:
            row = 0
            # 何種類ものデータ取得がこの一行だけ
            res = requests.get('https://api.liquid.com/products').json()#JSONを辞書に変換
            for pr in res:
                #unixtimeを日本時間の文字列に変換
                jp_time = datetime.datetime.fromtimestamp(int(float(pr['timestamp'])))
                if pr['currency_pair_code'] in coin:#リストにあるものだけ通す
                    #best ask とbest bidの中間を現在価格とする
                    p_price=int((float(pr[ 'market_ask'])+float(pr[ 'market_bid']))/2)
                    if row == 0:
                        print(f"\n {jp_time}",end='')#改行してから 時間を表示
                        row += 1
                    if p_price != 0:#リストに有っても価格が0のものは排除
                        #コインペアと価格を改行せず横につなげて出力
                        print(f" [{pr['currency_pair_code']}  {p_price:,}]",end='')
            time.sleep(3)#API頻度制限に掛からないよう間隔を開ける
except:
    pass

コメント

タイトルとURLをコピーしました