Obtener JSON de la URL en Python

Siempre que queramos obtener datos de un servidor web utilizando una URL, esos datos deben tener algún formato particular. En general, siempre que queremos obtener datos del servidor web, utilizamos formatos JSON o XML.

Preferimos JSON sobre XML porque se ha vuelto bastante popular en la industria del software. Hay varias bibliotecas en Python para procesar JSON.

A lo largo de este tutorial, usaremos los módulos json y requests, que están disponibles en Python.

Los datos JSON que obtendremos provienen de la siguiente URL. Esta URL nos permite obtener todos los datos relacionados con los users como nombre, correo electrónico, dirección, etc. Es de uso gratuito.

https://jsonplaceholder.typicode.com/users

En términos de API Restful, las URL se denominan puntos finales. A lo largo de este tutorial, usaremos estas dos palabras indistintamente. En la URL anterior, /users se refiere a un punto final.

Si abre la URL anterior en el navegador, verá todos los datos relacionados con los users en formato JSON. Se muestra a continuación.

[
  {
    "id": 1,
    "name": "Leanne Graham",
    "username": "Bret",
    "email": "Sincere@april.biz",
    "address": {
      "street": "Kulas Light",
      "suite": "Apt. 556",
      "city": "Gwenborough",
      "zipcode": "92998-3874",
      "geo": {
        "lat": "-37.3159",
        "lng": "81.1496"
      }
    },
    "phone": "1-770-736-8031 x56442",
    "website": "hildegard.org",
    "company": {
      "name": "Romaguera-Crona",
      "catchPhrase": "Multi-layered client-server neural-net",
      "bs": "harness real-time e-markets"
    }
  },
]

Tenga en cuenta que solo le hemos mostrado los datos JSON relacionados con un solo usuario en el bloque de código anterior. Esto es solo para fines explicativos. Pero si visita la URL, verá los datos de todos los usuarios.

El JSON se refiere a la JavaScript Object Notation. Se utiliza para enviar y recibir datos entre un servidor y un cliente y viceversa. Aquí, no se confunda con la palabra JavaScript; JSON es independiente de cualquier lenguaje de programación. En JSON, usamos dos tipos de corchetes para formatear los datos; uno son los corchetes [] que representan una matriz o una lista, y el otro son los corchetes {} que representan un objeto.

Los datos dentro del JSON siempre estarán en forma de pares clave-valor entre comillas "". Entonces, si desea acceder a cualquier valor, debe usar la clave asociada a ese valor. Por ejemplo, digamos que queremos acceder al nombre de usuario de los datos JSON anteriores; usaremos la clave name para obtener el valor Leanne Graham, que es el primer nombre de usuario. Además, tenga en cuenta que no se permiten comentarios en JSON.

Obtenga y acceda a datos JSON en Python

Primero, necesitamos importar los módulos requests y json para obtener y acceder a los datos.

import requests, json

Obtener y convertir datos de la URL a una cadena

El primer paso que tenemos que realizar aquí es buscar los datos JSON usando la biblioteca de requests.

url = requests.get("https://jsonplaceholder.typicode.com/users")
text = url.text
print(type(text))

Producción:

<class 'str'>

La biblioteca requests tiene un método llamado get() que toma una URL como parámetro y luego envía una solicitud GET a la URL especificada. La respuesta que obtenemos del servidor se almacena en la variable denominada url.

Esta respuesta almacenada dentro de la variable url debe convertirse en una cadena con la ayuda del método .text como url.text. Y luego, almacenamos el resultado en la variable text. Si imprime el tipo de la variable text, será del tipo <class 'str'>.

Parsethe JSON Data

El análisis es un proceso de conversión de datos de cadena en formato JSON. Para eso, usaremos el módulo json.

data = json.loads(text)
print(type(data))

Producción:

<class 'list'>

El módulo json viene con un método llamado loads(), la s en loads() significa cadena. Como queremos convertir datos de cadena en JSON, usaremos este método. Dentro de este método, tenemos que pasar la variable text que contiene la cadena de datos json.loads(text) y almacenarla dentro de la variable data.

Ahora los data tendrán la respuesta JSON completa. Si imprime el tipo de la variable data, entonces será de tipo <clase 'list'> porque en este caso, la respuesta JSON comienza con corchetes [] y en Python, las listas comienzan con cuadrado soportes.

Acceder a los datos JSON

Ahora que hemos analizado los datos JSON, estamos listos para acceder a los valores individuales que queremos usando la variable datos. Para acceder a los detalles del primer usuario, como Nombre y Dirección, podemos hacer lo siguiente.

import json, requests 

url = requests.get("https://jsonplaceholder.typicode.com/users")
text = url.text

data = json.loads(text)

user = data[0]
print(user['name'])

address = user['address']
print(address)

Producción:

Leanne Graham
{'street': 'Kulas Light', 'suite': 'Apt. 556', 'city': 'Gwenborough', 'zipcode': '92998-3874', 'geo': {'lat': '-37.3159', 'lng': '81.1496'}}

Para acceder al primer usuario de la lista de usuarios, tenemos que utilizar el índice 0 de los datos JSON, que se almacena dentro de una variable llamada data, y luego almacenar todos los detalles de ese primer user interior. Ahora bien, este users es un objeto que contiene todos los detalles relacionados con ese usuario. Para acceder al nombre, solo tenemos que pasar la tecla name dentro de la variable user como user['name'] y luego imprimirlo. Imprimirá el nombre del usuario dentro de la consola.

Y para acceder a la dirección tenemos que pasar la tecla address dentro de la variable de usuario, es decir, user['address'], y luego almacenarla dentro de una variable llamada address y luego imprimirla. Esto le dará un objeto que contendrá todos los detalles específicos relacionados con el campo de dirección, como número de apartamento, nombre de la calle, código postal, etc. Digamos que de estos detalles solo desea el código postal del usuario; luego debe pasar la clave del código zipcode dentro del objeto address.

Artículo relacionado - Python JSON

  • Escribir JSON en un archivo en Python
  • Convertir archivo CSV a archivo JSON en Python
  • Artículo relacionado - Python API

  • Escribir JSON en un archivo en Python
  • Guardar diccionario en JSON en Python