Lingua-e
Python

¿Qué significa JSONDecodeError?

← Errores

json.JSONDecodeError se lanza cuando json.loads() o json.load() recibe una cadena que no es JSON válido. Es una subclase de ValueError e incluye la posición del error de sintaxis en la entrada, lo que facilita depurar payloads malformados.

Por qué ocurre

  • Usar comillas simples en lugar de comillas dobles (JSON requiere comillas dobles).
  • Comas finales en objetos o arrays, que no están permitidas en JSON.
  • Recibir una página de error HTML o cadena vacía donde se espera JSON.
  • Una respuesta truncada de una solicitud de red que no se recibió completamente.

Ejemplos

Python

Código que causa el error

import json

data = json.loads("{'key': 'value'}")  # single quotes are not valid JSON

Error en la terminal

json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

Cómo solucionarlo

Siempre valida la respuesta cruda antes de parsear: verifica que comience con { o [. Usa try/except json.JSONDecodeError para manejar la entrada malformada de forma correcta. Registra la cadena cruda cuando ocurre un error de decodificación para poder inspeccionar lo que realmente se recibió.

Código corregido

import json

raw = '{"key": "value"}'  # double quotes
try:
    data = json.loads(raw)
    print(data["key"])
except json.JSONDecodeError as e:
    print(f"Invalid JSON at position {e.pos}: {e.msg}")

Errores relacionados

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis