Python JSON
En Python, JSON (JavaScript Object Notation) es un formato de intercambio de datos ligero y fácil de leer y escribir. Se utiliza ampliamente para transmitir y almacenar datos estructurados entre diferentes sistemas. Python proporciona funciones integradas para trabajar con datos JSON, lo que facilita la serialización (convertir objetos Python a JSON) y la deserialización (convertir JSON a objetos Python).
Convertir Python a JSON (Serialización)
Aquí podrás ver algunos ejemplos para convertir objetos Python a JSON, a lo que llamamos serialización.
Ejemplo
print(json_data)
print(json_data)
Salida:
Ejemplo
print(nombre)
Ejemplo para convertir Python a JSON
convierte el diccionario de Python
x
en un objeto JSON utilizando la función
json.dumps()
. El resultado es un string que representa el objeto JSON.
Ejemplo
# convertir a JSON:
## convertir a JSON:
y = json.dumps(x)
y = json.dumps(x)
#El resultado es #El resultado es un string de JSON:
print(y)
print(y)
Salida:
Ejemplo
país = "España"
comunidad = "Madrid"
Madrid = "Madrid"
ciudad = {"nombre": "Madrid", "país": "España"}
{país: "España", comunidad: Madrid, ciudad: "Alcobendas"}
print(ciudad)
El diccionario Python
x
contiene tres claves ("País", "Comunidad" y "Ciudad") con sus respectivos valores ("España", "Madrid" y "Alcobendas"). Al utilizar
json.dumps(x)
, se convierte el diccionario en una cadena de texto JSON que representa la misma estructura y valores del diccionario original. Luego, se imprime el resultado, que es el objeto JSON en formato de cadena.
Objetos de Python que se pueden convertir en cadenas JSON
Estos son los tipos de objetos de Python que se pueden convertir en cadenas JSON:
- dict
- list
- tuple
- string
- int
- float
- True
- False
- None
Cuando se convierte de Python a JSON, los objetos de Python se convierten al equivalente de JSON (JavaScript):
| Python | JSON |
|---|---|
| dict | Object |
| list | Array |
| tuple | Array |
| str | String |
| int | Number |
| float | Number |
| True | true |
| False | false |
| None | null |
Ejemplo para convertir objetos de python en cadenas JSON
Convierte diferentes objetos de Python en cadenas JSON utilizando la función
json.dumps()
y luego imprime las cadenas JSON resultantes. Aquí está el resultado de cada conversión:
Ejemplo
import json
# Diccionario de Python
print(json.dumps({"País":"España", "Comunidad":"Madrid",}))
# Lista de Python
print(json.dumps(["Aranjuez","Las Rozas"]))
# Tupla de Python
print(json.dumps(("Aranjuez","Las Rozas")))
# Cadena de Python
print(json.dumps("Catalina"))
# Entero de Python
print(json.dumps(32))
# Número decimal de Python
print(json.dumps(32.10))
#
# Booleano True de Python
print(json.dumps(True))
#
# Booleano False de Python
print(json.dumps(False))
#
# Valor nulo de Python (None)
print(json.dumps(None))
Salida:
Ejemplo
"Catalina"
true
false
nulltrue
false
false
null
pprint(false)
Cada objeto de Python se convierte correctamente en su representación correspondiente de cadena JSON.
Formato del resultado
El ejemplo anterior imprime una cadena JSON, pero no es muy fácil de leer, sin sangrías ni saltos de línea. El método
json.dumps()
tiene parámetros para facilitar la lectura del resultado:
- Use el parámetro de sangría para definir los números de sangría:
También puede definir los separadores, el valor predeterminado es ( ",", ":" ), lo que significa usar una coma y un espacio para separar cada objeto, y dos puntos y un espacio para separar las claves de los valores:
- Utilice el parámetro separadores cambiar el separador predeterminado:
Ejemplo
import json
x = 10
json.djson.dumps(x, indent=3, separators=(". ", " = "))
print(x)
Ordenar el resultado
El método
json.dumps()
tiene parámetros para ordenar las claves en el resultado:
-
Use el parámetro
sort_keyspara especificar si el resultado debe ordenarse o no:
Ejemplo
x = 10
import json
json.dumps(x, indent=3, sort_keys=True)
print(x)
Convertir JSON a Python (Deserialización)
Aquí podrás ver algunos ejemplos para convertir de JSON a objetos Python, lo que llamamos deserialización.
Ejemplo
import json
# Cadena JSON
json_data = '{"nombre": "Ana", "edad": 25, "ciudad": "Barcelona"}'
# Convertir la cadena JSON a un diccionario Python
data = json.loads(json_data)
print(data)
Salida:
Ejemplo para convertir de JSON a python
El ejemplo convierte el objeto JSON en una estructura de datos de Python (un diccionario) utilizando la función
json.loads()
. Luego, imprime el valor correspondiente a la clave "Ciudad" del diccionario resultante.
Ejemplo
import json
# Código JSON:
x = '{ "País":"España", "Comunidad":"Madrid", "Ciudad":"Alcobendas"}'
# parse x:
y = json.loads(x)
# parse x:
y = json.loads(x)
# El resultado es un diccionario de python:
print(y["Ciudad"])
print(y["Ciudad"])
El resultado del código será: Alcobendas
En este caso, el valor asociado a la clave "Ciudad" en el objeto JSON es "Alcobendas", y al utilizar
json.loads(x)
, se convierte en un diccionario de Python que tiene la misma estructura y valores que el objeto JSON original. Luego, se accede al valor de la clave "Ciudad" del diccionario
y
e imprime "Alcobendas" como resultado.
Leer datos JSON desde un archivo de python
Supongamos que tenemos un archivo llamado " datos.json " con el siguiente contenido:
Ejemplo
{"nombre": "Carlos",
"edad": "28",
"ciudad": "Valencia"}
Podemos leer el contenido del archivo y cargarlo como un diccionario Python:
Ejemplo
import json
# Leer el contenido del archivo
with open('datos jason', 'r') as file:
json_data = file.read()
# Converti
# Convertir la cadena JSON a un diccionario Python
data = json.loads(json_data)
print(data)
print(data)
print(data)
Salida
Escribir datos JSON en un archivo de python
En el siguiente ejemplo, podrás ver como escribir datos JSON en un archivo:
Ejemplo
# Convertir el diccio
## Convertir el diccionario a una cadena JSON
json_data = json.dumps(data)
# Escribir la c
# Escribir la cadena JSON en un archivo
with open('datos.json', 'w') as file:
file.write(json_data)
Trabajar con JSON en Python es muy sencillo gracias a las funciones integradas que proporciona el módulo
json
. Permite la transferencia de datos estructurados entre aplicaciones y sistemas de manera eficiente y fácil de interpretar tanto para humanos como para máquinas.
Formato del resultado
Cuando se pinta una cadena JSON, a veces no son fáciles de leer, sin sangrías ni saltos de línea. El método
json.dumps()
tiene parámetros para facilitar la lectura del resultado:
Ejemplo
Use el parámetro de sangría para definir los números de sangría:
Ejemplo
json.djson.dumps(x, indent=3)
print(x)
También puede definir los separadores, el valor predeterminado es ( ",", ":" ), lo que significa usar una coma y un espacio para separar cada objeto, y dos puntos y un espacio para separar las claves de los valores:
Ejemplo
Utilice el parámetro separadores cambiar el separador predeterminado:
Ejemplo
json.djson.dumps(x, indent=3)
print(x)
x = 10
json.d
x = 10
x = 10
json.djson.dumps(x, indent=3, separators=(". ", " = "))
print(x)
Ordenar el resultado
El método
json.dumps()
tiene parámetros para ordenar las claves en el resultado:
Ejemplo
Use el parámetro
sort_keys
para especificar si el resultado debe ordenarse o no:
Ejemplo
print(json_data)
print(json_data)
Practica Python JSON en el editor
Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.
Ejercicio: Cadena json
Aquí podrás ver algunos ejemplos para convertir objetos Python a JSON, a lo que llamamos serialización.
Ejemplo
import json
# Cadena JSON
json_data = '{"nombre": "Ana", "edad": 25, "ciudad": "Barcelona"}'
# Convertir la cadena JSON a un diccionario Python
data = json.loads(json_data)
print(data)
Ejercicio: Convierte el diccionario de Python
convierte el diccionario de Python x en un objeto JSON utilizando la función json.dumps() . El resultado es un string que representa.
Ejemplo
import json
# Diccionario de Python
print(json.dumps({"País":"España", "Comunidad":"Madrid",}))
# Lista de Python
print(json.dumps(["Aranjuez","Las Rozas"]))
# Tupla de Python
print(json.dumps(("Aranjuez","Las Rozas")))
# Cadena de Python
print(json.dumps("Catalina"))
# Entero de Python
print(json.dumps(32))
# Número decimal de Python
print(json.dumps(32.10))
#
# Booleano True de Python
print(json.dumps(True))
#
# Booleano False de Python
print(json.dumps(False))
#
# Valor nulo de Python (None)
print(json.dumps(None))
Ejercicio: Convierte el diccionario de Python (2)
convierte el diccionario de Python x en un objeto JSON utilizando la función json.dumps() . El resultado es un string que representa.
Ejercicio: Convertir a json:
Convierte diferentes objetos de Python en cadenas JSON utilizando la función json.dumps() y luego imprime las cadenas JSON resultantes. Aquí está el resultado d.
Ejemplo
# convertir a JSON:
## convertir a JSON:
y = json.dumps(x)
#El resultado es #El resultado es un string de JSON:
print(y)
Ejercicio: Código json:
Convierte diferentes objetos de Python en cadenas JSON utilizando la función json.dumps() y luego imprime las cadenas JSON resultantes. Aquí está el resultado d.
Ejemplo
import json
# Código JSON:
x = '{ "País":"España", "Comunidad":"Madrid", "Ciudad":"Alcobendas"}'
# parse x:
y = json.loads(x)
# parse x:
y = json.loads(x)
# El resultado es un diccionario de python:
print(y["Ciudad"])
Ejercicio: Deserializar JSON a dict
Convierte una cadena JSON en un diccionario Python con json.loads.
Ejemplo
import json
texto = '{"nombre": "Elena", "edad": 28, "ciudad": "Valencia"}'
persona = json.loads(texto)
print(persona)
print(persona["ciudad"])
Comprueba lo aprendido
Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.