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)
  
Abrir en editor

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:

Ejemplo

    import json

x = 10

json.djson.dumps(x, indent=3)
print(x)
  
Abrir en editor

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)
  
Abrir en editor

Ordenar el resultado

El método json.dumps() tiene parámetros para ordenar las claves en el resultado:

  • Use el parámetro sort_keys para 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)
  
Abrir en editor

Salida:

Ejemplo

    {'nombre': 'Ana', 'edad': 25, 'ciudad': 'Barcelona'}
  
Abrir en editor

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)
  
Abrir en editor

Salida

Ejemplo

    {'nombre': 'Carlos', 'edad': 28, 'ciudad': 'Valencia'}
  
Abrir en editor

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)
  
Abrir en editor

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))
  
Abrir en editor

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.

Ejemplo

    d = {"nombre": "Elena", "ciudad": "Valencia"}
print(d["nombre"])
  
Abrir en editor

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)
  
Abrir en editor

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"])
  
Abrir en editor

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"])
  
Abrir en editor

Comprueba lo aprendido

Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.