gspreadを使ってPythonからスプレッドシートに行単位でデータを追加するappend_row()でデータを書き込もうとした際に以下のようなAPIエラーが発生しました。
<コード>
~~~~ wks = gc.open_by_key(notebook_id).worksheet('<シートネーム>') write_datas = [ 'user_a', ['2022-01-11', '2022-01-12', '2022-01-13'] ] wks.append_row(write_datas) ~~~~
<エラーメッセージ>
APIError: {‘code’: 400, ‘message’: ‘Invalid values[7][9]: list_value {\n}\n’, ‘status’: ‘INVALID_ARGUMENT’}
関数の引数設定がおかしいのかなと思いましたが、原因はスプレッドシートに書き込むように指定したリストのデータ型が不適切だったのが原因でした。
というのもappend_row()で指定する二次元リスト配列の内部で使えるデータは以下のデータ型だけのようです。
- bool型
- string型
- double型
改めて確認してみると記事上部の<コード>にあるような感じでデータにリスト型が混じっており、そのせいでAPIエラーが発生していたようです。
同じようなエラーで悩んでいる方はappend_row()などでスプレッドシートに書き込む多次元配列のデータ中に上記3つ以外のデータ型がないかを確認してみてください
コメント
[…] 関連記事:gspreadでの書き込みが「code400:INVALID_ARGUMENT」で失敗する原因と解決法 […]