
仮想通貨bot 勉強記録④
~json形式のデータから任意の値を取り出す~
前回までのあらすじ
第2回:1まで進めました。今回は第2回:2からやっていきます。
まずは下記のコードです。
import requests
response = requests.get("https://api.bitflyer.jp/v1/ticker/")
print(response.json())
requestsというモジュールをインポートして、変数:responseにrequestsモジュール内のget関数を使って"https://api.bitflyer.jp/v1/ticker/"の情報を取得し、最後にjson形式に変換してprintで出力しています。
実行すると、こんな感じになります。
続いて教科書の第2回:3に進みます。
この章で最も大事な内容は、json形式のデータの中身の見かたです。
教科書の”データの取り出し方”の項目を読めば分かります。
ここでコードを少しアレンジします!
json形式はコンピュータ用なので、改行もスペースもなく、人間には見づらいです。そこで、こちらの記事を参考にしました。まちゅけんさんのrichモジュール紹介です。
まずrichというモジュールをインストールします。
pip install rich
コピペしてEnterでインストールしましょう。
次に、コードの最初の部分でrichモジュールのprint関数をインポートし、普段のprint関数をrich仕様のprint関数に上書きしましょう。
↓コードの2行目です。
import requests
from rich import print
response = requests.get("https://api.bitflyer.jp/v1/ticker/")
print(response.json())
実行すると、、、
見やすい!!
自動改行と色付けでいい感じにこなれ感を演出してくれます(?)
さて教科書に戻りましょう。
例として、実行結果の中から'best_ask'のみを取り出すには、
import requests
from rich import print
response = requests.get("https://api.bitflyer.jp/v1/ticker/").json()
print(response['best_ask'])
こんな感じのコードに修正します。
変化点は2個。
①printで出力する際にjson形式に変換していたのを、response変数に入れるときにjson形式に変換するように変えました。
②printで出力する際に、response内の'best_ask'の項目を指定しています。
実行するとbest_askの値のみを出力します。
第2回:3まで終了しました。