Python

gspreadでの書き込みが「code400:INVALID_ARGUMENT」で失敗する原因と解決法

この記事は約2分で読めます。

 

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つ以外のデータ型がないかを確認してみてください

 

コメント

  1. […] 関連記事:gspreadでの書き込みが「code400:INVALID_ARGUMENT」で失敗する原因と解決法 […]

タイトルとURLをコピーしました