ちゃぱブログ / エンジニアリング / マネジメント

とあるプロダクトの運用組織のマネジメントしてる人の雑記

Google Spread SheetをPythonで利用していたらエラーとなった話

完全に自分用のメモです。

概要

PythonからGooglee Spread Sheetに対して書き込む処理を書いてました。そのときに発生したエラーと対処の仕方について記載します。自分の対処方針は本質的じゃない(回避)です。

発生したエラー

Pythonでgspreadを経由してGoogle Spread Sheetに書き込んでいたところ、ある程度書き込んだところで異常終了しました。 エラー内容は以下。

エラーコード:429
エラーメッセージ:Quota exceeded for quota metric 'Write requests' and limit 'Write requests per minute per user' of service 'sheets.googleapis.com' for consumer 'project_number:**********'."

まぁ、文字通りで1分間で書き込みし過ぎってことです。 Google APIのコンソールで、 「該当プロジェクトのダッシュボードに移動して画面下部にスクロール」→「Google Sheets APIをクリック」→「左メニューの割り当て選択」→「画面下部のWrite Requestsを選択 の順で選ぶと以下の画像のようにユーザー単位の1分の書き込みは100回に制限されていることがわかります。 f:id:as_chapa:20210110061813p:plain

対処方法

上限を上げる

Googleに申請すると上限値を上げることができるようです。以下のページでその方法が紹介されています。

www.cdatablog.jp

別のところにデータを書き込む

全然本質的ではないんですが、自分の場合、もっとデータを登録する可能性があったので、SQLiteでDB作ることにしました。そっちのほうが何の制限も気にしないで良いので。 (複数環境で開発しているので、DBファイルの保管をどうしようかなという別の悩みが発生するのですが・・・)

参考リンク

一連の開発をするにあたって参考にしてきた記事をメモしておきます。

gspread

gspread — gspread 3.6.0 documentation

gspreadライブラリの使い方まとめ!Pythonでスプレッドシートを操作する | たぬハック

Google API

Google Spread Sheets に Pythonを用いてアクセスしてみた - Qiita