Zum Inhalt springen
jsonbeautifiers
Deutsch
Python Überprüft durch Ausführen des Parsers auf CPython 3.14.3.

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

Auf einen Backslash in einer JSON-Zeichenkette folgt ein Zeichen, das keines der neun JSON-Escapes ist. In Python-Code verdoppelt sich die Verwirrung, weil auch das Python-String-Literal Backslashes verbraucht - der Text, der beim Parser ankommt, ist also nicht der, den Sie getippt haben.

Fügen Sie Ihr JSON ein und sehen Sie genau, wo es bricht

Eingabe

Nichts, was Sie einfügen, verlässt Ihren Browser. Die connect-src Erlaubnisliste macht daraus eine Garantie des Browsers statt eines Versprechens. Selbst überprüfen

Was es tatsächlich auslöst

Sortiert danach, wie oft sich das jeweilige als die Antwort herausstellt.

  1. 01 Ein Windows-Pfad

    Jeder Backslash muss für JSON verdoppelt werden, und in einem nicht-rohen Python-Literal noch einmal für Python. Ein Raw-String nimmt eine dieser Schichten weg.

    Geht kaputt

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

    Funktioniert

    json.loads(r'{"p": "C:\\Users"}')
  2. 02 Ein regulärer Ausdruck

    \d, \s und \w sind keine JSON-Escapes. Verdoppeln Sie jeden Backslash.

  3. 03 Ein \x-Hex-Escape

    JSON hat nur \uXXXX. Aus \x41 muss \u0041 werden.

Derselbe Fehler in anderen Laufzeitumgebungen

Das zugrunde liegende Problem ist identisch; nur der Wortlaut unterscheidet sich. Meldet eine Kollegin eine dieser Zeilen, sieht sie genau dasselbe wie Sie.

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

Häufige Fragen

Warum funktioniert dieselbe Zeichenkette an einer Stelle und an einer anderen nicht?
Weil es darauf ankommt, durch wie viele String-Literale sie geht. Ein Pfad, der direkt in einer .json-Datei steht, braucht eine Verdopplungsebene. Derselbe Pfad in einem Python-Literal in einem Shell-Argument kann drei brauchen.
Ist das dasselbe wie die SyntaxWarning zu ungültigen Escape-Sequenzen?
Nein, und man verwechselt beides leicht. Jene Warnung ist Python, das sich über Ihren Quelltext beschwert, bevor überhaupt JSON im Spiel ist. Dieser Fehler kommt vom JSON-Parser und betrifft den Inhalt der Zeichenkette.

Jetzt beheben

Fügen Sie das Payload in das Werkzeug oben ein, oder gehen Sie direkt zu dem, das für diesen Zweck gebaut wurde.

Korrekt escapen