見出し画像

スプレッドシートからビットコインやレバナスの価格を取得してみる 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}')

取得した結果の一部です。

画像1

10月22日の終値が141.28で取得できています。
Google検索結果のチャートで見てみると141.28なので期待通りの値が取得できています。

画像2

次回はもう少しコードを使いやすい形に修正していきます。


この記事が気に入ったらサポートをしてみませんか?