pythonからGoogleスプレッドシートの最下行にログ的に行を追加する。
あんまりpythonのgspreadの情報ってネットに転がってない気がするんで、もしかしたらこのやり方はオワコンなのかしらんと戦々恐々としている日々です。
とりあえず、やりたいことは
「ラズパイから気温湿度気圧を取得してそれをGoogleスプレッドシートの最下行にロギングする」
です。
最下行のインデックスがわかればいいんで、一生懸命考えてこんな感じになりました。10万行くらいなら1-2秒くらいで取得できます。
ちなみに、SPREADSHEET_KEYの意味だのGoogle Cloud Platformの登録方法だのは割愛してありますので、他のサイトを見てください。ここではロジックのご紹介だけでございます。
#共有設定したスプレッドシートのシート1を開く
worksheet = gc.open_by_key(SPREADSHEET_KEY).sheet1
#A列のデータを配列として取得
A_COL_ARRAY = worksheet.col_values(1)
print("len(A_COL_ARRAY); " + str(len(A_COL_ARRAY)))
#最下行インデックスを取得
LAST_ROW_IDX = len(A_COL_ARRAY)
#最下行の値を取得
LAST_NUMBER_VALUE = worksheet.cell(LAST_ROW_IDX, 1).value
print("LAST_NUMBER_VALUE: " + LAST_NUMBER_VALUE)
# 最下行に一行追加 Numberは最大値+1とする。
NEW_NUMBER = int(LAST_NUMBER_VALUE) + 1
worksheet.update_cell(LAST_ROW_IDX + 1, 1, NEW_NUMBER)
A列の内容を全部配列に突っ込んで(col_values())その配列の数を取得すれば最終インデックスわかるだろ、ということですが気に入らん。一発で最下行のインデックスとかオブジェクト返してくれるようなプロパティなりメソッドなりがあるんじゃないか。そういうものがあったらどなたか教えてくださいませ。
いいじゃないの!