Expecting property name enclosed in double quotes: line L column C (char N)
El parser está dentro de un objeto y esperaba una clave entre comillas dobles. Encontró otra cosa: una comilla simple, una palabra desnuda, o en versiones antiguas de Python una coma final. JSON exige que las claves sean cadenas entre comillas dobles, sin excepciones para las claves que parezcan identificadores.
Pega tu JSON y ve exactamente dónde se rompe
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.
-
01 Un dict de Python impreso en vez de serializado
str(d) y print(d) producen comillas simples. Esta es, con diferencia, la fuente más común de este error.
Falla
data = str({'a': 1}) json.loads(data)Funciona
data = json.dumps({'a': 1}) json.loads(data) -
02 El entrecomillado de la AWS o Azure CLI en Windows
PowerShell y cmd manejan las comillas de forma distinta a una shell POSIX, así que los argumentos JSON en línea llegan a la CLI con las comillas dobles eliminadas. El arreglo fiable es meter el JSON en un archivo y pasar file://params.json en vez de pelearse con la shell.
Falla
aws dynamodb query --key-condition-expression "{\"id\": ...}"Funciona
aws dynamodb query --cli-input-json file://params.json -
03 Una coma final, en Python 3.12 y anteriores
Antes de la 3.13, una coma final producía este mensaje. Desde la 3.13 tiene el suyo propio: «Illegal trailing comma before end of object». Si estás siguiendo una guía que no menciona versiones, esta es la razón por la que puede no coincidir con lo que ves.
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) | Expected property name or '}' in JSON at position 1 (line 1 column 2) |
|---|
Preguntas frecuentes
- ¿Puedo parsear el repr de un dict de Python sin reescribirlo?
- ast.literal_eval lo maneja de forma segura: evalúa sintaxis literal de Python sin ejecutar código arbitrario, a diferencia de eval. Después pasa el resultado por json.dumps si necesitas JSON de verdad.
Arréglalo ahora
Pega el payload en la herramienta de arriba, o ve directamente a la creada para este trabajo.
Convertir las comillas simples a JSON