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. 2017/12/25 今日から仮想通貨世界のドアを開けます
  2. facebookのいいねボタンに5種類の感情ボタンが出現!
  3. 仮想通貨歴15日目、最初から知っておけば良かった5つ事。
  4. 簡単に美しいマーブル模様をPhotoshop CCで作成する方法…
  5. 仮想通貨歴10日間で戸惑った3つのこと
  6. 仮想通貨歴23日目 初の大暴落を経験。
  7. GoProMAX等で撮影した360度写真をPhotoshopで簡…
  8. table装飾時に持っておきたいベーステンプレートとなるCSS

コメント

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

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

おすすめ記事

雪山フォト – フォトレタッチ

投稿コメント雪山フォトrezakk399 Instagram…

ずっと苦手なイメージ持ってた3D。使ってみると思ったより簡単で、プロっぽく制作できる便利な超高機能。 – フォトレタッチ

投稿コメントずっと苦手なイメージ持ってた3D。使ってみると思ったより簡単で、プロっぽく制作できる…

多重露光 アート風のレタッチ。人物と風景のバランスが難しい、簡単に出来るかなと思ったけど結構時間を使った。ただ、面白い。 – フォトレタッチ

投稿コメント多重露光 アート風のレタッチ。人物と風景のバランスが難しい、簡単に出来るかなと思った…

秋探し。十月桜は咲き始めかな?紅葉はもう少し先だね、気温が一気に下がれば色づきも期待。 – フォトレタッチ

投稿コメント秋探し。十月桜は咲き始めかな?紅葉はもう少し先だね、気温が一気に下がれば色づきも期待…

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

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

人気記事

  1. iPhoneのライトニングケーブル根本断線を予防するマストアイテム
  2. ディシディアファイナルファンタジー最新作「DFFオペラオムニア」がアプリで登場!バトルシステムやリセマラポイントについて
  3. 城ドラ ジャイアントベビー コスト3でチビドラ・エルフ・雪ん子に強し!
  4. ホウチ帝国 七夕イベントの攻略まとめ
  5. OVERHIT(オーバーヒット) 待望のレイドバトル「討伐戦」についてまとめ。

インスタグラム

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