#問題点
- Sheets APIを使ってPythonでスプレッドシートに書き込むとき, datetime型やtimestamp型はエラーを吐いて書き込めない.
- datetime型とtimestamp型を文字列に変換して書き込んだら, スプレッドシート上で日付(ex. 2021/12/13)が文字列として認識されてしまう.
#解決策
以下において, 定義していない変数名は参考文献で使われた一般的なものであるとする.
まず, 以下のようにDataFrame内の日付データを文字列に変換する.
df['date'] = df['date'].dt.strftime("%Y/%m/%d")
そして, 書き込みメソッド(append_row
など)で, 引数にvalue_input_option='USER_ENTERED'
を指定する.
for row in df.values.tolist():
wks.append_row(row, table_range='A1', value_input_option='USER_ENTERED')
#所感
jsonにDate型に相当する型がないから起きたエラーらしいですね.
英語のreferenceは堅苦しくてまだ読み解けないマンなので, stack overflowの自己解決ニキ(参考文献を参照)がいなければもうちょっともぞもぞして詰まっていたかもしれない.
#参考文献
- https://stackoverflow.com/questions/64270673/how-can-i-change-the-text-format-to-number-format-of-a-table-pulled-from-python
- https://stackoverflow.com/questions/49243736/how-do-i-handle-object-of-type-timestamp-is-not-json-serializable-in-python
- https://teratail.com/questions/275532
- https://hituji-ws.com/code/python/python-spreadsheet/