Está en la página 1de 13

JSON

JSON
JSON es una sintaxis para almacenar e intercambiar datos.

JSON es texto, escrito con notación de objetos JavaScript.

JSON (JavaScript Object Notation), es un formato ligero de intercambio de datos inspirado


por la sintaxis literal de objetos en JavaScript (aunque no es un subconjunto estricto de
JavaScript).

json expone una API familiar a los usuarios de los módulos de la biblioteca estándar marshal
y pickle.
Estructura JSON
{
"Nombre": "Oscar",
"Apellido": "Javier",
"hobbies": ["programar", "jardinería", "rubik"],
"edad": 35,
"hijos": [
{
"Nombre": "Alicia",
"edad": 6
},
{
"Nombre": "Diego",
"edad": 8
}
]
}
JSON
Python admite JSON de forma nativa

Python viene con un paquete incorporado llamado json para codificar y decodificar datos
JSON.

import json

El proceso de codificación de JSON generalmente se denomina serialización. Este término


se refiere a la transformación de datos en una serie de bytes (por lo tanto, en serie) para ser
almacenados o transmitidos a través de una red. También puede escuchar el término
clasificación. De igual manera, la deserialización es el proceso recíproco de decodificación
de datos que se han almacenado o entregado en el estándar JSON.
JSON
Serializar JSON

¿Qué sucede después de que una computadora procesa mucha información? Necesita
realizar un volcado de datos. En consecuencia, la iblioteca json expone el método dump()
para escribir datos en archivos. También hay un método dumps() para escribir en una cadena
de Python.

Los objetos simples de Python se traducen a JSON de acuerdo con una conversión bastante
intuitiva.
Python JSON
dict object
list, tuple array
str string
int, long,float number
True true
False false
None null
JSON
Ejemplo de serialización

data = {
“protagonista": {
“nombre": "Emma Stone",
“película": "La La Land"
}
}

• Crear un archivo llamado data_peli.json


• Abrirlo en modo de escritura.

with open("data_peli.json", "w") as escritura:


json.dump(data, escritura)
JSON
with open("data_peli.json", "w") as escritura:
json.dump(data, escritura)

dump() emplea dos argumentos posicionales:


1. El objeto de datos que se serializará
2. El objeto archivo en el que se escribirán los bytes.

JSON está destinado a ser fácilmente legible por humanos, pero la sintaxis legible no es
suficiente si está todo junto.

Se emplea el argumento indent de la palabra clave para especificar el tamaño de la sangría


de las estructuras anidadas.

json.dumps(data)
json.dumps(data, indent=4)
JSON
Otra opción de formato es el argumento separators de palabra clave. De forma
predeterminada, esta es una tupla de 2 cadenas de separación (", ", ": "), pero una alternativa
común para JSON compacto es (",", ":").

json.dumps(data, separators=(',', ':')))

sort_keys, ordena la salida de las palabras clave.

json.dumps(data, sort_keys=True)
JSON
Deserializar JSON

Al igual que la serialización, hay una tabla de conversión simple para la deserialización,
aunque probablemente ya pueda adivinar cómo se ve.

JSON Python
object dict
array list
string str
number (entero) int
number (decimal) float
true True
false False
null None
JSON
with open("data_peli.json", "r") as lectura:
data = json.load(lectura)

El resultado de este método podría devolver cualquiera de los tipos de datos permitidos de
la tabla de conversión. En la mayoría de los casos, el objeto raíz será un dict o un list.

Si ha extraído datos JSON de otro programa o ha obtenido una cadena de datos con formato
JSON en Python, se puede deserializar fácilmente con loads() :
JSON
json_string = """
{
"researcher": {
"name": "Ford Prefect",
"species": "Betelgeusian",
"relatives": [
{
"name": "Zaphod Beeblebrox",
"species": "Betelgeusian"
}
]
}
}
"""
data = json.loads(json_string)
JSON
1. Escribir una función que requiera como parámetro un número entero para generar la
tabla de multiplicar correspondiente, llame a la función desde un ciclo para generar las
tablas del 2 al 9 y guárdelas en un fichero con el nombre tablas.json con la estructura:
[{"tabla":2, "por":1, "igual":2}, {"tabla":2, "por":2, "igual":4}…]

También podría gustarte