Análisis del formato JSON con Python

Índice

JavaScript Object Notation - JSON

El formato JSON se inspiro en el formato de objetos y arrays que se usa en el lenguaje JavaScript. Pero como Python se invento antes que JavaScript, la sintaxis usada en Python para los diccionarios y listas influyeron la sintaxis de JSON.
De modo que el formato del JSON es casi idéntico a la combinación de listas y ´
diccionarios de Python.


Resultado de imagen para json imagenes

Todos sabemos como luce un objeto JSON, a continuación te doy un ejemplo:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "1600",
               "short_name" : "1600",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Amphitheatre Pkwy",
               "short_name" : "Amphitheatre Pkwy",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Mountain View",
               "short_name" : "Mountain View",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Santa Clara County",
               "short_name" : "Santa Clara County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "California",
               "short_name" : "CA",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "94043",
               "short_name" : "94043",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "1600 Amphitheatre Parkway, Mountain View, CA 94043, USA",
         "geometry" : {
            "location" : {
               "lat" : 37.4224764,
               "lng" : -122.0842499
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 37.4238253802915,
                  "lng" : -122.0829009197085
               },
               "southwest" : {
                  "lat" : 37.4211274197085,
                  "lng" : -122.0855988802915
               }
            }
         },
         "place_id" : "ChIJ2eUgeAK6j4ARbn5u_wAGqWA",
         "types" : [ "street_address" ]
      }
   ],
   "status" : "OK"
}
El anterior JSON es de un articulo que escribí en este blog,el cual es Servicio web de geocodificación de Google Maps, ¿Como podrías extraer simplemente una parte de información de este JSON?, hoy te enseñara a analizar y poder extraer atributos de objetos JSON con ayuda de Python y el modulo json. Listos, pues comenzamos.


 Análisis de JSON con Python:



El JSON se construye anidando diccionarios (objetos) y listas segun se necesite.



En este ejemplo, vamos a representar una lista de usuarios en la cual cada usuario es un conjunto de parejas clave-valor (es decir, un diccionario). De modo que tendremos una lista de diccionarios.





Para el ejemplo de hoy usaremos la librería integrada json para analizar el



JSON y leer los datos.





A continuación te mostrare el código del ejemplo, luego lo explicare.

import json

users = '''
[
{ "id" : "001",
"edad" : "21",
"nombre" : "Luis"
},
{ "id" : "002",
"edad" : "25",
"nombre" : "Andres"
},
{ "id" : "003",
"edad" : "34",
"nombre" : "Jose"
},
{ "id" : "004",
"edad" : "29",
"nombre" : "Jesus"
}
]'''

info = json.loads(users)
print('Cantidad de usuarios:', len(info))
for elemento in info:
    print('Nombre', elemento['nombre'])
    print('Id', elemento['id'])
    print('Edad', elemento['edad'])
    print("n")



Antes de ejecutar nuestro programa, veamos como funciona.


Como pueden ver, lo primero que hacemos es importar el modulo json, luego definimos una variable con el identificador "users" la cual almacenara una lista con nuestros objetos JSON.


Luego de esto hacemos uso del metodo "loads" del modulo "json",  lo que obtenemos de json.loads() es una lista de Python que recorreremos con un bucle for, y cada elemento dentro de esa lista es un diccionario de Python. Una vez analizado el JSON, podemos usar el operador indice de Python para extraer los distintos fragmentos de datos de cada usuario. No tenemos que usar la librería JSON para rebuscar a través del JSON analizado, ya que los datos devueltos son sencillamente estructuras nativas de Python.


Al momento de ejecutar nuestro programa el resultado debería quedarnos algo así:


Como pueden ver el programa nos informa de cuantos usuarios existen, esto lo logra contando los objetos que existen, luego recorremos todos los elementos de cada objeto y lo mostramos en pantalla.


No te limites a no agregar más objetos, experimenta con este código y cuéntanos en los comentarios como te fue :D.


Mucha parte de la información que les e proporcionado en este articulo, es del libro "Python para informáticos" escrito por Charles Severance, un libro muy bueno, se los recomiendo :D.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir
White Monkey