Python

Pythonの実行結果をGoogleスプレッドシートに出力してみた。グラフ表示も簡単。

今回は、Pythonの勉強で利用した実行結果(ログなど)をGoogleスプレッドシートに出力するという事をお送りします。
実際には、海外の仮想通貨取引所「BitMEX」の残高推移グラフを手軽に表示したかったので作成しました。またグラフを公開しURLを取得すれば外出先やスマホで、いつでも残高推移グラフを確認できるのも利点です。

準備
GoogleスプレッドシートのAPIを利用するにあたり、下記の事前準備が必要です。

1. Googleアカウントの作成
2. Google Developer Consoleにて、プロジェクトを作成する。
3. スプレッドシートAPIを有効にする
4. OAuth用クライアントIDの作成
5. スプレッドシートの共有設定

プロジェクトを作成する

Google Developer Consoleにアクセスし、「プロジェクトを作成」をクリックする。

プロジェクト名を記入し作成。これでプロジェクトは作成できました。

APIを有効にする


次にAPIを有効にします。左上のハンバーガーメニューより「APIとサービス」>「ライブラリ」を選択します。
ライブラリの中より「Google Sheets API」を選択し、「有効にする」ボタンをクリックする。

OAuth用クライアントIDの作成


左メニューより認証情報へ移動。認証情報を作成より、「サービスアカウントキー」を選択します。
サービスアカウント名は任意名を、役割は「project」>「編集者」を選択します。そして、キーのタイプをjsonにして作成します。

作成ボタンを押すと、ダウンロードされます。保存場所は、pyファイルがある同階層(同じフォルダ)に保存します。

スプレッドシートの共有設定


利用するスプレッドシート上で作成したクライアントIDに共有設定を与えます。
この設定にはクライアントIDのメールアドレスが必要なので、左メニュー>サービスアカウントよりメールアドレスを控えます。
利用するスプレッドシートに移動して、右上の「共有」を開きます。
ユーザー欄に先程コピーしたメールアドレスを貼付けて送信します。共有設定が完了。

ここまでで準備は完了しました。続いてPythonコードを書いていきます。

Pythonでスプレッドシートに出力

最初に必要なライブラリ「oauth2client」「gspread」をインストールしておきましょう。
下記コードに必要事項を記入し実行すると、該当シートのA1セルに「A1セルに書き込みます。」が書き込まれれば成功です。
シートIDはスプレッドシートのURLから取ってくるのが簡単です。スプレッドシートに移動するとURLが「https://docs.google.com/spreadsheets/d/〇〇〇/edit~」となってます。この〇〇〇部分の文字羅列がシートIDとなります。シート名は、デフォルトだと「シート1」とかですね、ここは任意に変えれるのでそのシート名を記入します。

import gspread
from oauth2client.service_account import ServiceAccountCredentials

scope = ['https://spreadsheets.google.com/feeds']

#ダウンロードしたjsonファイル名を記入
json_file = 'jsonファイル名.json'
#スプレッドシートIDを記入
sheet_id = 'シートID'
#スプレッドシートのシート名を記入
sheet_name = 'シート名'

credentials = ServiceAccountCredentials.from_json_keyfile_name(json_file, scope)
gc = gspread.authorize(credentials)
sp = gc.open_by_key(sheet_id)
wks = sp.worksheet(sheet_name)

wks.update_acell('A1', "A1セルに書き込みます。")
print('書き込み完了')


あとは、書き込みたい内容をカスタムしていけば良いですね。例えば、実行結果の数値を10分毎に取得しスプレッドシートに書き込んでいき、その数値を基にグラフで表示する。なんてことが簡単に出来ます。
ここの利点は、グラフを公開してURLを取得すれば、外出先やスマホで確認出来る事ですね。また、単純に実行結果ログを出力し確認することも。使い方はあなた次第ですね。

「BitMEX」の残高推移グラフを手軽に表示した参考例

以下では、ワタシが利用した参考例を。実際のPythonコードは記載してませんが、こういう事も出来るよという例です。

まず、BitMEXから口座残高と取得した日時を10分毎にスプレッドシートに出力します。(数値は仮です)

グラフの作成
続いて、取得した値を基に別シートで「グラフ」を作成します。
グラフの作成は、簡単で列ABを選択してグラフアイコン(グラフ挿入)をクリック。そうするとシート上にグラフが出現します。

グラフを選択した状態で、右上のメニューボタンをクリックし「個別シートに移動」にすると別シートでグラフが表示されます。

後は、見やすいように「グラフを編集」からグラフの種類などを編集します

「グラフ」のシートを公開しURLを取得。

最後に「グラフを公開」することでURLを取得できます。この時公開する範囲をグラフシートとウェブページにします。公開ボタンを押すとURLが取得できます。
グラフは値が更新されると自動で追加生成されます、素晴らしいGoogleサービス!

スマホで確認。

スマホでも確認できますね。これで残高推移が外出先でも分かります、ボットを稼働させたりしてると重宝しますね。
また、ちょっと計算方法を変えれば日次損益や月次なども可能になります。

参考:gspread API Reference

 

lifezakk

lifezakk

投稿者の記事一覧

フリーランスのWEBデザイナー。日々WEB制作で気になるHtml CSS Photoshop illustrator や好きなアプリの備忘録をつけてます。カメラはレタッチで使う素材撮りや趣味レベルでやっています。

関連記事

  1. 0から作る光と影。箱の継ぎ目や奥行きにに影を落とし、ランプの上か…
  2. LINEで郵便局の荷物追跡や再配達ができる!?
  3. 仮想通貨歴23日目 初の大暴落を経験。
  4. ビックリマン風のキラキラシールをPhotoshopで作成してみる…
  5. ヤフオクの商品説明を綺麗に!売上アップのポイント
  6. CSSグリッドレイアウトについて。flexboxより使いやすいが…
  7. facebookのいいねボタンに5種類の感情ボタンが出現!
  8. WordPressの悩み相談「目次を中央寄せにしたい」を解決。

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

おすすめ記事

Photoshopの「空の置き換え」について、どれだけラクになるか体感。私がよく使う現在の手順はコレ①選択範囲を作成②「選択とマスク」で微調整しマスク③空の画像を配置④色調補正「カラーの適用」でトーン調整これがワンタッチに。トーン調整が付いてるのがヤバイ。進化がはやいなぁ、sensei。 – フォトレタッチ

投稿コメントPhotoshopの「空の置き換え」について、どれだけラクになるか体感。私がよく使う…

四国 日の出。 – フォトレタッチ

投稿コメント四国 日の出。rezakk399 Instagram…

change hair color.Photoshop での髪色変更のレタッチです。黒髪からブロンド、赤へカラーチェンジをしてます。ノイズが出ないように、自然なレタッチになります。 – フォトレタッチ

投稿コメントchange hair color.Photoshop での髪色変更のレタッチです。…

カミナリ@ – from Instagram

投稿コメントカミナリ#カミナリを撮ってみました。現像で黒い部分を暗くしたりして雷光をキワだしてる…

カワウ – from Instagram

投稿コメントカワウrezakk399 Instagram…

人気記事

  1. GoProMAX等で撮影した360度写真をPhotoshopで簡単に編集する方法。
  2. 川沿いの景色 – α6400 – sigma 30mm f1.4
  3. 花。 – from Instagram
  4. LINE ガンダム ウォーズ LINE株式会社が運営する新感覚のガンダムゲーム
  5. 友達のヨーロッパ旅行写真のレタッチ。観光名所は、案内板や補強工事などがあるので雰囲気壊すものもある。そういうのを取り除いてあげるのもレタッチの仕事かな。やりすぎるとアレだけどね。1枚目レタッチ。2枚目元画像光を強調。看板を削除。階段の木目を調整。天井部分の補強パネルを削除。 – from Instagram

インスタグラム

This error message is only visible to WordPress admins

Error: There is no connected account for the user 8694609815 Feed will not update.

カテゴリー記事一覧

PAGE TOP