python

Python: petición HTTP POST con JSON

En mi blog ya te he mostrado cómo hacer un servidor web con Python o una API con Flask, pero Python también puede ser un cliente HTTP para consumir APIs de otros servidores.

Por ello es que en este post te voy a enseñar cómo hacer una petición HTTP de tipo POST enviando y recibiendo datos codificados como JSON usando Python y el módulo requests.

Sobre la codificación como JSON

Recuerda que JSON puede enviar simples cadenas, enteros, booleanos, etcétera hasta diccionarios y arreglos. Aquí no será necesario codificar los datos como JSON, pues requests ya hará el trabajo por nosotros.

Lo que sí te quiero advertir es que en ocasiones hay problemas cuando intentamos codificar un objeto de Python a JSON, así que en lugar de ello recomiendo usar diccionarios.

Instalando requests

Vamos a necesitar el módulo requests, para ello debes contar con Python y PIP. Una vez que los tengas, ejecuta:

pip install requests

Petición POST con JSON usando Python

Ahora veamos un ejemplo muy simple para enviar una cadena al servidor usando JSON. El código queda así:

See the gist on github.

En la línea 2 importamos al módulo requests, luego definimos la url del servidor en la línea 4. Más tarde definimos los datos que se van a enviar en la línea 5, recuerda que estos datos pueden ser un diccionario, una lista, una cadena, entero, lista de diccionarios, etcétera.

La verdadera petición http post con JSON usando Python se está haciendo en la línea 6 en donde pasamos los datos en el argumento json dentro de la llamada a post. Después, tenemos la respuesta como JSON en la línea 8.

Es importante mencionar que si el servidor no regresa JSON, al invocar al método json de la línea 8, se generará una excepción. Si quieres leer la respuesta como cadena, mejor accede a respuesta.text.

A continuación te mostraré un ejemplo real.

Ejemplo: enviar JSON con petición POST usando Python

Vamos a usar la API REST falsa JSONPlaceholder. El código queda así:

See the gist on github.

Ahora estamos enviando un objeto de JSON, que en Python es un diccionario. Lo enviamos en la línea 9 al invocar a post.

El servidor nos va a regresar el mismo objeto que enviamos pero además un id, así que imprimimos la respuesta (será un diccionario) y también accedemos a una propiedad del objeto en la línea 15.

Al ejecutarlo se ve así:

Petición HTTP POST con JSON usando Python y requests

Si quieres puedes probar el código en vivo en este enlace. También te cuento que tengo más tutoriales sobre Python en mi blog.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

5 días hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

6 días hace

Imprimir PDF generado con HTML

Hoy vamos a ver programar la impresión de un PDF generado a partir de HTML…

7 días hace

JavaScript: llenar select con arreglo

En este tutorial básico de JavaScript con HTML vamos a ver cómo llenar una lista…

2 semanas hace

Imprimir PDF a partir de URL

En este artículo se presenta una guía para imprimir un PDF a partir de una…

2 semanas hace

Imprimir PDF a partir de base64

En este post voy a enseñarte cómo imprimir un PDF a partir de su representación…

2 semanas hace

Esta web usa cookies.