Saltar al contenido
jsonbeautifiers
Español
Python Verificado ejecutando el parser en CPython 3.14.3.

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

A una barra invertida de una cadena JSON le sigue un carácter que no es ninguno de los nueve escapes de JSON. En código Python la confusión se duplica, porque el literal de cadena de Python también consume barras invertidas, así que el texto que llega al parser no es el que escribiste.

Pega tu JSON y ve exactamente dónde se rompe

Entrada

Nada de lo que pegues sale de tu navegador. La lista de permitidos de connect-src convierte eso en una garantía del navegador, no en una promesa. Compruébalo tú mismo

Qué lo provoca realmente

Ordenados por la frecuencia con la que cada uno acaba siendo la respuesta.

  1. 01 Una ruta de Windows

    Cada barra invertida hay que duplicarla para JSON, y en un literal de Python que no sea raw hay que duplicarla otra vez para Python. Usar una cadena raw elimina una de esas capas.

    Falla

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

    Funciona

    json.loads(r'{"p": "C:\\Users"}')
  2. 02 Una expresión regular

    \d, \s y \w no son escapes de JSON. Duplica cada barra invertida.

  3. 03 Un escape hexadecimal \x

    JSON solo tiene \uXXXX. \x41 debe pasar a ser \u0041.

El mismo error en otros entornos

El problema de fondo es idéntico; solo cambia la redacción. Si un compañero reporta alguno de estos, está mirando exactamente lo mismo que tú.

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

Preguntas frecuentes

¿Por qué la misma cadena funciona en un sitio y en otro no?
Por cuántas veces pasa por un literal de cadena. Una ruta escrita directamente en un archivo .json necesita un nivel de duplicación. Esa misma ruta dentro de un literal de Python dentro de un argumento de shell puede necesitar tres.
¿Es lo mismo que el SyntaxWarning sobre secuencias de escape inválidas?
No, y es fácil confundirlos. Ese warning es Python quejándose de tu código fuente, antes de que haya ningún JSON de por medio. Este error viene del parser de JSON y habla del contenido de la cadena.

Arréglalo ahora

Pega el payload en la herramienta de arriba, o ve directamente a la creada para este trabajo.

Escaparlo correctamente