¡¡¡Hola a todos!!! Hoy vamos a intentar entender: ¿qué es JSON y cómo leer un archivo JSON en Python?
Antes de nada, un poco de datos:
1. JSON son las siglas de JavaScript Object Notation. Es un formato de intercambio de datos donde se pueden transferir datos de cliente a servidor y de servidor a cliente.
2. También se utiliza para la comunicación entre aplicaciones
3. JSON es extremadamente importante para el desarrollo de aplicaciones, especialmente cuando se trabaja con las API Rest
4. Se basa en un subconjunto de Java Script
5. Es fácil de leer y escribir
Hemos aprendido la teoría, ahora vamos a aprender las reglas básicas de sintaxis cuando se trabaja con el formato JSON:
1. JSON utiliza pares clave-valor – {«name»: «Vasya»}
2. JSON utiliza comillas dobles alrededor de la clave
Normalmente en los tutoriales te hablan del equipo con datos sobre salario, localización y todas esas cosas. No rompamos la tradición e imaginemos un equipo formado por 5 empleados: Vasya, Sasha, Petya, Dasha, Masha. Cada empleado recibe un salario determinado, lo que significa que podemos crear nuestro propio archivo JSON (llamémoslo personal.json), que será una lista de empleados + su salario:
{
{\i1}"personal\i"{\i} [
{
\{\} "nombre": {\}"Vasya",
{\"salario": 5000
},
{
\ "nombre": \{\}"Sasha",
{\ "salario\": 6000
},
{
\ "nombre": {\i1}"Petya\i"{\i}
{\"salario": 9000
},
{
{\i1}"nombre".{\i} {\i1}"Dasha".{\i}
{\"salario": 10.000
},
{
\ {\}"nombre": {\i1}"Masha".{\i}
{\"salario": 11000
}
]
}
como puedes ver – el campo nombre es responsable del nombre del empleado, y el campo salario es responsable del nivel salarial, pero el nombre de este array de datos es personal (especificado en la parte superior). Tenemos el fichero de datos, pero ¿cómo lo leemos? Para ello, veamos el código siguiente:
import json #Conecta la librería responsable de trabajar con JSON
with open('personal.json', 'r', encoding='utf-8′) as f: #abre el fichero personal.json y especifica su codificación - así podremos trabajar con letras rusas
text = json.load(f) #llenar la variable con todo lo obtenido como resultado del trabajo de la biblioteca
print(text) #poner el resultado en la pantalla
Si ejecutas el código, obtendrás algo como esto en pantalla:
{‘personal’: [{‘nombre’: ‘Vasya’, ‘salario’: 5000}, {‘nombre’: ‘Sasha’, ‘salario’: 6000}, {‘nombre’: ‘Petya’, ‘salario’: 9000}, {‘nombre’: ‘Dasha’, ‘salario’: 10000}, {‘nombre’: ‘Masha’, ‘salario’: 11000}]}
De acuerdo: es extremadamente difícil leer y analizar estos datos. Para simplificar el trabajo en tal caso, a menudo utilizamos la biblioteca pprint, que domestica la salida en tales casos. En este caso, nuestro código se verá así:
import json #conectar librería para trabajar con json
from pprint import pprint #conectar pprint para embellecer la salida de texto
with open({\'personal.json\', {\'r\', encoding=\'utf-8\') as f: #abrir archivo de datos
text = json.load(f) #carga todo en una variable
pprint(text) #poner el resultado en pantalla
Como resultado, la salida tiene el siguiente aspecto:
{\'personal\': [{\'nombre\': {\'Vasya\', {\'salario\': 5000},
{\'name\': {\i1}'Sasha',{\i} {\i1}sueldo': 6000.{\i}
{\'nombre': \{\}"Petya", {\}"salario": 9000},
{\'nombre': \{\}'Dasha', {\}'salario': 10.000},
{\'name\': {\'Masha', {\'sueldo': 11000}]}
Y ahora vamos a la salida de los datos en su forma pura – nombre del empleado + salario. Entonces el código se verá así:
import json #Conectamos la libreria
with open({\'personal.json\', \'r\', encoding=\'utf-8\') as f: #abrir archivo
text = json.load(f) #carga todo lo del archivo en una variable
print(text) #poner el resultado en pantalla
for txt in text[\'personal\']: #creamos un bucle que se ejecutará línea a línea
print(txt[{'nombre\'], \':\', txt[{'salario\']) #e imprimirá en pantalla todo lo que haya en el valor de las claves nombre y salario
En realidad … se podría decir que es suficiente por hoy, pero al final te diré cómo leer cadenas en lugar de archivos json. Por ejemplo, tendremos una cadena json:
stroke = ‘{«comida»: «plátano»}’
Si intentamos mostrarlo en la pantalla, obtendremos:
{«food»: «banana»} – que en general capta el punto, pero no sigue las reglas 🙂 Para dar salida a la cadena json usamos la función loads. En forma de código, tiene el siguiente aspecto:
import json #conectar librería para trabajar con json
trazo = \'{\"comida\": \{"banana\"}\}' #cadena json
stroke_s = json.loads(stroke) #llenar la variable con el resultado de leer la cadena json
print(trazo_s) #imprime el resultado en la pantalla
Eso es todo 🙂 ¡Gracias por vuestra atención! Y sí – más adelante entenderemos cómo escribir en un archivo json 🙂
¿Alguna duda? Pregunta al correo, o escribe a Telegram 🙂 🙂
Y por cierto, aquí está el vídeo:
