code": 400,\n    "message": "Invalid JSON payload received. Expected , or } after key:value pair.\\n\\\\,\\n  \\"type\\": \\"URL_UP\\n^",\n    "status": "INVALID_ARGUMENT"\n  }\n}\nと戦う。

2022-02-13

GoogleのIndexing APIの実験をしていたら以下のエラーにあたりました。

code": 400,\n    "message": "Invalid JSON payload received. Expected , or } after key:value pair.\\n\\\\,\\n  \\"type\\": \\"URL_UP\\n^",\n    "status": "INVALID_ARGUMENT"\n  }\n}\n

調べてみると、Googleサンプルコードを元にPythonでテストしていたのですが、GoogleのサンプルコードではJSONの箇所が以下のようになっていました。

content = """{
  \"url\": \"http://example.com/jobs/42\",
  \"type\": \"URL_UPDATED\"
}"""

このバックスラッシュが悪さをしていたようです。

以下のようにバックスラッシュを消して再実施したところ改善されました。

content = """{
  "url": "http://example.com/jobs/42",
  "type": "URL_UPDATED"
}"""

調べたら"message": "Invalid JSON payload received. Expectedはダブルクォーテーション周りでよく起きる事象とのことだったので、試しにシングルクォーテーションに変えてみたり試してみると改善されるかもしれません。とにかくコードが汚いのが原因らしいです。

おわり

本当いろんなエラーがありますね。自分が書いていないコードだと信じてしまいがちなのでなんでバックスラッシュなんだろうと一瞬思ったもののそういうものなのかなと信じて疑わなかったです。

Python

Posted by Nakamoto