Trabajando con Datos JSON
Ahora que sabemos cómo importar correctamente el módulo JSON, exploremos cómo usarlo para operaciones JSON comunes.
Creando un Ejemplo JSON Completo
Crea un nuevo archivo llamado json_operations.py con el siguiente contenido:
## Ejemplo completo de trabajo con JSON en Python
import json
## 1. Convertir un objeto Python a una cadena JSON (serialización)
user = {
"name": "Charlie",
"age": 28,
"is_student": False,
"courses": ["Python", "Data Science", "Web Development"],
"address": {
"street": "123 Tech Lane",
"city": "Boston",
"zipcode": "02101"
}
}
## Convertir el diccionario Python a una cadena JSON
json_string = json.dumps(user, indent=2)
print("Cadena JSON creada a partir del objeto Python:")
print(json_string)
print("\n" + "-"*50 + "\n")
## 2. Parsear una cadena JSON a un objeto Python (deserialización)
parsed_user = json.loads(json_string)
print("Objeto Python creado a partir de la cadena JSON:")
print("Nombre:", parsed_user["name"])
print("Edad:", parsed_user["age"])
print("Cursos:", parsed_user["courses"])
print("Ciudad:", parsed_user["address"]["city"])
print("\n" + "-"*50 + "\n")
## 3. Escribir JSON a un archivo
with open("/home/labex/project/user_data.json", "w") as json_file:
json.dump(user, json_file, indent=2)
print("Datos JSON escritos en user_data.json")
## 4. Leer JSON de un archivo
with open("/home/labex/project/user_data.json", "r") as json_file:
loaded_user = json.load(json_file)
print("Datos JSON cargados del archivo. Nombre de usuario:", loaded_user["name"])
Este script demuestra cuatro operaciones JSON comunes:
- Convertir un objeto Python a una cadena JSON usando
json.dumps()
- Parsear una cadena JSON en un objeto Python usando
json.loads()
- Escribir datos JSON a un archivo usando
json.dump()
- Leer datos JSON de un archivo usando
json.load()
Ejecuta el script:
python3 /home/labex/project/json_operations.py
Deberías ver una salida similar a:
Cadena JSON creada a partir del objeto Python:
{
"name": "Charlie",
"age": 28,
"is_student": false,
"courses": [
"Python",
"Data Science",
"Web Development"
],
"address": {
"street": "123 Tech Lane",
"city": "Boston",
"zipcode": "02101"
}
}
--------------------------------------------------
Objeto Python creado a partir de la cadena JSON:
Nombre: Charlie
Edad: 28
Cursos: ['Python', 'Data Science', 'Web Development']
Ciudad: Boston
--------------------------------------------------
Datos JSON escritos en user_data.json
Datos JSON cargados del archivo. Nombre de usuario: Charlie
El script también creó un archivo llamado user_data.json. Veamos su contenido:
cat /home/labex/project/user_data.json
Deberías ver los datos JSON formateados con la indentación correcta:
{
"name": "Charlie",
"age": 28,
"is_student": false,
"courses": ["Python", "Data Science", "Web Development"],
"address": {
"street": "123 Tech Lane",
"city": "Boston",
"zipcode": "02101"
}
}
Ahora has aprendido con éxito cómo trabajar con datos JSON en Python, incluyendo cómo evitar el error NameError: name 'json' is not defined importando correctamente el módulo.