Objeto de Python y Cadena JSON
Un objeto de Python es una colección de datos en forma de listas, diccionarios, etc. que se almacena en la memoria. En cambio, una cadena JSON es una representación serializada de un objeto JSON. Es una cadena de caracteres que representa los datos en el objeto JSON, pero no se almacena en la memoria como un objeto real.
Aquí hay un ejemplo de cómo usar la función read()
para leer el contenido de students.json
:
with open('students.json', 'r') as file:
json_string = file.read()
print(json_string)
Esto imprimirá lo siguiente:
[{"name": "Alice", "age": 26, "major": "Computer Science"}, {"name": "Bob", "age": 27, "major": "Economics"}, {"name": "Charlie", "age": 25, "major": "Physics"}]
Cuando intentes obtener el primer elemento de json_string
, obtendrás el primer carácter de la cadena:
print(json_string[0])
[
Esto se debe a que json_string
es una cadena, no una lista (objeto de Python). Para convertirla en una lista, podemos usar la función json.loads()
:
import json
## Convertir la cadena JSON en un objeto de Python
python_object = json.loads(json_string)
print(python_object)
La salida es similar a la anterior, con la diferencia entre comillas simples y dobles.
[{'name': 'Alice', 'age': 26,'major': 'Computer Science'}, {'name': 'Bob', 'age': 27,'major': 'Economics'}, {'name': 'Charlie', 'age': 25,'major': 'Physics'}]
Ahora podemos acceder al primer elemento de la lista:
print(python_object[0])
{ "name": "Alice", "age": 26, "major": "Computer Science" }
Los principiantes a menudo confunden el objeto de Python y la cadena JSON, así que presta especial atención.