Python ValueError: no se pudo decodificar ningún objeto JSON

Salman Mehmood 21 junio 2023
  1. Decodificar objeto JSON en Python
  2. Decodificar cadena JSON en un objeto de Python
  3. Codificar objeto de Python en una cadena JSON
Python ValueError: no se pudo decodificar ningún objeto JSON

Discutiremos el error de nombre, cómo codificar un objeto de Python en un JSON y decodificar una cadena adyacente en un objeto de Python. También vamos a aprender por qué fallamos al analizar los datos JSON.

Decodificar objeto JSON en Python

Comencemos importando el módulo json, y para esta sesión, planeamos codificar y decodificar objetos de Python en texto adyacente. Así que cambiaremos a la siguiente línea y definiremos una variable que almacenará una pequeña cadena completa donde tendremos algunos pares clave-valor.

Cuando imprimimos esto, vemos que se imprime como definimos en la variable, lo que significa que es una cadena.

Código:

import json

Sample_json = '{"Employee_Name":"Garry","Employee_Age":29}'
print(Sample_json)
# We can see the type of this Sample_json using the type() function
print(type(Sample_json))

Producción :

{"Employee_Name":"Garry","Employee_Age":29}
<class 'str'>

Decodificar cadena JSON en un objeto de Python

Ahora necesitábamos decodificarlo en un objeto de Python, y se convierte exactamente en un diccionario de Python. Usaremos el método json.loads() para decodificar cadenas adyacentes y, al mismo tiempo, también imprimiremos el tipo de objeto.

import json

Sample_obj = json.loads(Sample_json)
print(Sample_obj)
print(type(Sample_obj))

Producción :

{'Employee_Name': 'Garry', 'Employee_Age': 29}
<class 'dict'>

Codificar objeto de Python en una cadena JSON

Ahora hemos visto que una cadena JSON se puede decodificar en un objeto de diccionario de Python con la ayuda del método json.loads(). Veamos otro ejemplo en el que convertiremos un objeto de Python o cómo codificar un objeto de Python en una cadena JSON.

Definamos un objeto más llamado Sample_json2, que será un diccionario. Para convertir eso en JSON, usamos el método json.dumps().

Luego proporcionaremos el objeto que queremos codificar en una cadena JSON. Ahora podemos ver el tipo de salida que generó el método dumps(), y podemos ver que su tipo es str(cadena).

Código:

import json

Sample_json2 = {"Employee_Name": "Garry", "Employee_Age": 29}
print(Sample_json2)
print(type(Sample_json2))
temp = json.dumps(Sample_json2)
print(temp)
print(type(temp))

Producción :

{'Employee_Name': 'Garry', 'Employee_Age': 29}
<class 'dict'>
{"Employee_Name": "Garry", "Employee_Age": 29}
<class 'str'>

El método dumps() codifica un objeto Python en una cadena adyacente, y el método loads() decodifica una cadena JSON en un objeto Python. Si seguimos este enfoque, no obtendremos el error de valor que a veces obtenemos cuando analizamos los datos JSON.

Puede haber muchas razones por las que no se analizan los datos JSON en python, una de ellas es que a veces intentamos decodificar una cadena vacía o un archivo vacío, o tal vez estamos dando la ruta incorrecta del archivo JSON.

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

Artículo relacionado - Python Error