本文へスキップ
jsonbeautifiers
日本語
Python CPython 3.14.3 上でパーサーを実行して確認しました。

Invalid \escape: line L column C (char N)

JSON文字列の中のバックスラッシュのあとに、JSONの9種類のエスケープのどれでもない文字が続いています。Pythonのコードでは混乱が二重になります。Pythonの文字列リテラル自体もバックスラッシュを消費するため、パーサーに届くテキストは、あなたが打ったものとは違うからです。

JSONを貼り付けて、壊れている箇所を正確に確認する

入力

貼り付けたものがブラウザの外に出ることはありません。 connect-src の許可リストにより、これは約束ではなくブラウザによる保証になっています。 自分で確かめる

実際の原因

どれが答えになることが多いか、その順に並べています。

  1. 01 Windowsのパス

    バックスラッシュはJSON用に2つ重ねる必要があり、raw文字列でないPythonリテラルの中ではPython用にもう一度重ねる必要があります。raw文字列を使えば、その層のひとつが消えます。

    壊れる例

    json.loads('{"p": "C:\Users"}')

    動く例

    json.loads(r'{"p": "C:\\Users"}')
  2. 02 正規表現

    \d、\s、\wはJSONのエスケープではありません。バックスラッシュをすべて2つ重ねてください。

  3. 03 \xの16進エスケープ

    JSONには\uXXXXしかありません。\x41は\u0041にする必要があります。

ほかのランタイムでの同じ間違い

根本にある問題は同一で、違うのは文言だけです。同僚がこれらのどれかを報告してきたなら、見ているものはあなたと同じです。

JavaScript (V8) Bad escaped character in JSON at position 9 (line 1 column 10)

よくある質問

同じ文字列が、ある場所では動いて別の場所では動かないのはなぜですか?
文字列リテラルを何回通過するかによります。.jsonファイルに直接書いたパスなら重ねるのは1段階です。同じパスがPythonのリテラルの中にあり、さらにシェルの引数の中にある場合、3段階必要になることもあります。
不正なエスケープシーケンスに関するSyntaxWarningと同じものですか?
違います。そして混同しやすい2つです。あの警告は、JSONが関わる前の段階で、Pythonがあなたのソースコードについて文句を言っているものです。こちらのエラーはJSONのパーサーが出しており、文字列の中身についてのものです。

今すぐ直す

上のツールにペイロードを貼り付けるか、この用途のために作られたツールに直接進んでください。

正しくエスケープする