スプレッドシートからビットコインやレバナスの価格を取得してみる 2回目
前回GoogleFinance関数を使ってビットコインとレバナスの価格をスプレッドシートで取得しました。
今回はスプレッドシートの値をPythonを使って取得してみます。
Pythonの実行環境は準備する手間を減らすために、Google Colaboratoryを使用します。
ColaboratoryとはブラウザでPythonを実行できるサービスで、機械学習などでよく使われています。
以前はJupyter Notebookと言う環境を自分のローカルに構築していたのですが、最近はColaboratoryで済んでしまうので大変助かっています。
無料でこんなにも便利な機能が使えるなんて、Google様様です。
Googleスプレッドシートから値を取得するのにはPythonの「gspread」ライブラリを使用します。
手順はざっくり以下の4ステップ。
1. 認証
2. ワークブック取得
2. ワークシート取得
3. セル範囲の取得
認証
スプレッドシートからGoogle colabで値を取得する際に認証を行う必要があります。
下記コードを実行するとURLが表示され、認証を行います。
認証が完了するとVerification codeが表示されるので、コピーしてcolab側で表示された入力枠に貼り付けます。
from google.colab import auth
from oauth2client.client import GoogleCredentials
import gspread
auth.authenticate_user()
gc = gspread.authorize(GoogleCredentials.get_application_default())
ワークブック取得
次にワークブックを取得します。
取得方法はいくつかあるのですが、スプレッドシートのIDを使って取得します。
スプレッドシートのIDはURLから確認できます。
URL: https://docs.google.com/spreadsheets/d/{スプレッドシートのID}/edit#gid=0
ss_id = {スプレッドシートのID}
workbook = gc.open_by_key(ss_id)
ワークシート取得
次にワークシートの情報を取得します。
レバナスの価格を取得したシート名を「TQQQ」としたので、下記のように記述します。
worksheet = workbook.worksheet("TQQQ")
セル範囲の取得
取得したシートのrangeを使ってセルの値を取得します。
とりあえず固定値で"A1:B2722"と手入力。
固定値はいただけないので後日修正しますが、とりあえず動作確認優先。
cell_list = worksheet.range("A1:B2722")
値が取れているか出力して確認してみます。
for cell in cell_list:
print(f'{cell.row} 行目 {cell.col} 列目 {cell.value}')
取得した結果の一部です。
10月22日の終値が141.28で取得できています。
Google検索結果のチャートで見てみると141.28なので期待通りの値が取得できています。
次回はもう少しコードを使いやすい形に修正していきます。