Introducción

En este artículo vamos a explicar cómo leer el contenido de una API JSON desde el lenguaje de programación Python.

¿Qué es una API JSON?

Un servicio API (Application Programming Interfaces) JSON (Java Script Object Notation) permite acceder mediante peticiones URL a toda la información disponible en una base de datos, la mayoría de veces, de forma pública y libre.

Python API JSON

¿Cómo extraer el contenido de una API JSON?

Esto es muy sencillo, gracias a la librería requests de Python. Un ejemplo sencillo de código sería el siguiente:

# URL
url = http://ejemplo.com/api/json

# Get content
r = requests.get(url, headers=headers)

# Decode JSON response into a Python dict:
content = r.json()

Este código, extrae el contenido de la URL indicada, y la parsea a un diccionario de Python.

Ejemplo 1: función para extraer contenidos de una API JSON

Lo más recomendable, es que si vas acceder a la API más de una vez, desarrolles una función para que reciba como parámetro la URL y devuelva el contenido del JSON. Esto se puede hacer con el siguiente código:

def get_content(url):

    headers = {'Content-Type': 'application/json;charset=UTF-8', 'Access-Control-Allow-Origin': '*'}
    content = None

    # Get content
    r = requests.get(url, headers=headers)

    # Decode JSON response into a Python dict:
    content = r.json()

    return content

Ejemplo 2: capturar excepciones

Otra buena práctica cuando se accede a un recurso de internet que puede no estar disponible, es capturar una excepción para mostrar al usuario un mensaje de error adecuado, o para tomar cualquier otra acción que consideres:

def get_content(url):

    headers = {'Content-Type': 'application/json;charset=UTF-8', 'Access-Control-Allow-Origin': '*'}
    content = None

    try:

        # Get content
        r = requests.get(url, headers=headers)

        # Decode JSON response into a Python dict:
        content = r.json()

    except requests.exceptions.HTTPError as e:
        print("Bad HTTP status code:", e)

    except requests.exceptions.RequestException as e:
       print("Network error:", e)

    return content

En este caso, se capturan dos excepciones, una de HTTPError y otra de RequestException.

Y eso es todo …

Espero que este artículo te haya sido de utilidad para poder acceder desde Python a una API.

Como puedes observar, los ejemplos se han realizado utilizando la librería requests de Python, pero existen otras alternativas.


¡Sígueme en mis redes sociales o en mi página web personal!


Deja un comentario