Ir para o conteúdo
jsonbeautifiers
Português
Python Verificado rodando o parser em CPython 3.14.3.

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

Uma barra invertida em uma string JSON é seguida de um caractere que não é nenhum dos nove escapes do JSON. Em código Python a confusão dobra, porque o literal de string do Python também consome barras invertidas, então o texto que chega ao parser não é o que você digitou.

Cole o seu JSON e veja exatamente onde ele quebra

Entrada

Nada do que você cola sai do seu navegador. A lista de permissões connect-src transforma isso em uma garantia do navegador, e não em uma promessa. Confira você mesmo

O que realmente causa isso

Ordenados por quantas vezes cada um acaba sendo a resposta.

  1. 01 Um caminho do Windows

    Toda barra invertida precisa dobrar para o JSON, e em um literal Python não raw precisa dobrar de novo para o Python. Usar uma raw string tira uma dessas camadas.

    Quebra

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

    Funciona

    json.loads(r'{"p": "C:\\Users"}')
  2. 02 Uma expressão regular

    \d, \s e \w não são escapes do JSON. Dobre cada barra invertida.

  3. 03 Um escape hexadecimal \x

    O JSON só tem \uXXXX. \x41 precisa virar \u0041.

O mesmo erro em outros runtimes

O problema de fundo é idêntico; só muda a redação. Se um colega reportar uma dessas mensagens, ele está olhando exatamente para a mesma coisa que você.

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

Perguntas frequentes

Por que a mesma string funciona em um lugar e em outro não?
Por quantas vezes ela passa por um literal de string. Um caminho escrito direto em um arquivo .json precisa de um nível de duplicação. O mesmo caminho dentro de um literal Python dentro de um argumento de shell pode precisar de três.
Isso é a mesma coisa que o SyntaxWarning sobre sequências de escape inválidas?
Não, e é fácil confundir. Aquele aviso é o Python reclamando do seu código-fonte, antes de qualquer JSON entrar na história. Este erro vem do parser de JSON e fala do conteúdo da string.

Conserte agora

Cole o payload na ferramenta acima, ou vá direto para a que foi feita para este trabalho.

Escapar corretamente