Python

Python(gspred)でスプレッドシートを操作する。

こんにちは(@t_kun_kamakiri)(^^)

この記事ではPythonを使ってGoogleスプレッドシートを操作する方法について解説を行います。

Pythonを使ってGoogleスプレッドシートを操作することができたら、応用としてGoogleスプレッドシートに書いた内容をTwitterに投稿するというのができるようになります(^^)

前回の記事ではPythonでTwitterAPIを利用してTwitterに画像付きで投稿することができました。

前回の記事

 

最近TwitterAPIを利用してGoogleスプレッドシートに書いた内容を自動投稿してくれるTwitterのbotを作成しましたが、まさに本記事と前回の記事内容の応用的な使い方ですね。

botくんの運用方法としては「製造業ブロガー」の方々と共有でGoogleスプレッドシートに投稿内容をまとめPythonを使って定期的に自動でツイートしてもらうという仕組みを作りました。

本記事のシリーズではPythonでTwitterAPIを利用してGoogleスプレッドシートから自動投稿までの軌跡をまとめていきます。

こんな方ことがしてみたい方が対象

PythonでTwitterAPIを利用

さらに今後は「Twitterの投稿内容のデータ分析」や「誰でも使える分析ツールの自作」までできればワクワクしてきませんかね(^^)

では、本記事の内容です。

本記事の内容

PythonでTwitterAPIを使って

  • GoogleスプレッドシートAPI取得
  • PythonでGoogleスプレッドシートの操作

ここではPythonを使います。

Python3.7.6(Anaconda)

僕はデイトラPythonコースで勉強することで短期間で色々なことができるようになりました。↓こちらで学んだ内容をアレンジして記事を書いています(^^)

TwitterAPIの申請は事前に行っていることが前提です。
Twitterアカウント作成やTwitterAPIの申請は↓こちらの記事に書いていますのでご参考ください。

ツイート情報の取得(TwitterAPI申請)

 

スポンサーリンク

GoogleスプレッドシートとPythonを連携する

PythonはExcelを操作するライブラリとして「OpenPyXL」や「xlwings」などがあります。
しかしExcelはローカル環境において操作することがほとんどで、Pythonをサーバー上において実行するとなるとローカルにおいているExcelファイルを操作するのは少々面倒です。

Googleスプレッドシートならクラウド上に置いているのでGoogle Drive APIを取得することでGoogleスプレッドシートを操作することができます。

Google Drive API取得
↑こちらの記事を参考にして「STEP5:秘密鍵(JSONデータ)を保存」まで行ってください。
ここでやることは以下の2つです。
  1. JSONファイルの取得
    Pythonのコードで使うのはJSONファイル内のメールアドレスの部分です。
  2. スプレッドシートURLのキーを取得
    Pythonコードで使うのはスプレッドシートURLのキーです。「キー」はURLの「/d」と「/edit」の間の英数字です。

    これをPythonのコード内では「SPREADSHEET_KEY」という変数名で文字列にしておきます。

.envファイルを用意

Pythonコードを書く前に準備が必要です。

Pythonのコード内で先ほど取得したSPREADSHEET_KEYを認識させる必要があるのですが、コード内に直接べた書きするとセキュリティ的に良くないので、「.env」ファイルから読み込むようにします。

「.ipynb」と同じフォルダ内に「.env」ファイルを作成します。

これで認証用のキーの設定を読み込める準備ができました。

必要なライブラリは事前にターミナルでインストール

必要なライブラリは事前にターミナルでインストールしておきましょう。

AnacondaのPythonを使っている場合はpipコマンドで外部ライブラリをインストールするとファイルがぐちゃぐちゃになって壊れてしまう可能性があるため「conda install ライブラリ名」とGoogle検索してインストール方法を調べてください。
今回必要、Anacondaでインストールされていないライブラリは以下なのでインストールしておきます。

また、モジュールのimportでエラーがでたら上記のように適宜インストールをしてください_(._.)_

gspredのOAuth2認証にgspredの公式サイトには以下のように書かれています。

Note

Older versions of gspread have used oauth2client. Google has deprecated it in favor of google-auth. If you’re still using oauth2client credentials, the library will convert these to google-auth for you, but you can change your code to use the new credentials to make sure nothing breaks in the future.

oauth2clientではなく、google-authを使うことを推奨するという内容ですね。

PythonでGoogleスプレッドシートを操作する

Pythnoを使ってGoogleスプレッドシートを操作する練習をしてみます。

使うライブラリは「gspread」ですのでインストールしていない方は「pip install gspread」でインストールしておきましょう。

gspreadのライブラリはドキュメントに詳しく書かれているのでそちらをご参考ください。

gspreaのドキュメント

 

では、ここからはJupyter labで実際にコードを実行させながら理解をしていければと思います。

Pythonを使ってGoogleスプレッドシートの操作は以下の5つを覚えておけば色々なことができます。

  1. シートの追加
  2. シートのコピー
  3. シートの削除
  4. セルの値の取得
  5. セルの値の代入

では、こちらがjupyter labでひとつひとつ動作を確認してみてください。

カマキリ

これでPythonを使ってGoogleスプレッドシートの操作ができるようになりました

まとめ

PythonでGoogleスプレッドシートの操作を行いました。

次回は今回できるようになったPythonを使ってGoogleスプレッドシート操作に加えてTwitterAPIでツイートまでしてみましょう。

以降の記事では以下の内容を扱うのでお楽しみに(^^)/

全体の内容

PythonでTwitterAPIを利用

  • ツイート情報の取得
  • ツイート投稿
  • 複数の画像を付きでツイート投稿
  • Googleスプレッドシートとの連携⇒Twitterに画像付き投稿
  • 既存のTwitterAPIで他のアカウントでも投稿
  • トレンドの取得と分析

Pythonの理解にはこちらの参考書で勉強しています。

独習Python

独習Python

山田 祥寛
2,970円(03/02 21:14時点)
発売日: 2020/06/22
Amazonの情報を掲載しています

【プロフィール】

カマキリ
(^^)

大学の専攻は物性理論で、Fortranを使って数値計算をしていました。
CAEを用いた流体解析は興味がありOpenFOAMを使って勉強しています。

プロフィール記事はこちら

 

大学学部レベルの物理の解説をします 大学初学者で物理にお困りの方にわかりやすく解説します。

このブログでは主に大学以上の物理を勉強して記事にわかりやすくまとめていきます。

  • ・解析力学
  • ・流体力学
  • ・熱力学
  • ・量子統計
  • ・CAE解析(流体解析)
  • note
    noteで内容は主に「プログラミング言語」の勉強の進捗を日々書いています。また、「現在勉強中の内容」「日々思ったこと」も日記代わりに書き記しています。
  • youtube
    youtubeではオープンソースの流体解析、構造解析、1DCAEの操作方法などを動画にしています。
    (音声はありません_(._.)_)
  • Qiita
    Qiitaではプログラミング言語の基本的な内容をまとめています。