Un contenedor de Python para la API io de Walmart. Por ahora solo es compatible con la API de afiliados. El proyecto está abierto a contribuciones.
Para descargar WIOpy, bifurque este repositorio de github o simplemente use Pypi a través de pip.
instalación de pip WIOpy
Para actualizar el paquete simplemente ejecute
pip instalar WIOpy --actualizar
Un ejemplo de creación de una conexión WIOpy. Una nota importante es que debe pasar la ruta del archivo de clave privada.
desde wiopy import WalmartIOwalmart_io = WalmartIO(private_key_version="1",private_key_filename="./WM_IO_private_key.pem",consumer_id='XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',publisherId="XXXXXXX", )datos = walmart_io.product_lookup('33093101')[0]
WIOpy también admite llamadas asincrónicas. Para usarlo todo será igual pero debes esperar una llamada y el objeto construido es diferente.
desde wiopy import AsyncWalmartIOasync_walmart_io = AsyncWalmartIO(...)data = await async_walmart_io.product_lookup('33093101')[0]
Al realizar una llamada a la API, se devolverá un objeto. Ese objeto es una versión de objeto del JSON devuelto.
Hay dos formas de obtener información del objeto:
data.name
data['name']
Un ejemplo de un objeto devuelto y uno que no lo es (revisión/búsqueda son variables devueltas):
review.reviewStatistics.averageOverallRating
# Llamada anidada
search.facets
# Devuelve un dict que ahora se puede usar como un dict y no como un objeto
Algunos atributos devolverán un dict y no un objeto debido a la falta de documentación de Walmart.
Al obtener un atributo de WalmartResponse
, devolverá response
o None
. Pero intentar obtener un atributo de None
seguirá generando un error. Detalles adicionales sobre llamadas y respuestas. Sin embargo, los documentos son inconsistentes y carecen de prácticas típicas como el esquema de respuesta. Es por eso que falta algo como la respuesta de las facetas de búsqueda porque los documentos muestran que está en la respuesta, pero no qué tipo de datos contendrá.
Si bien es posible que falte una respuesta o que una respuesta no se convierta en un objeto, consulte WalmartResponse para tener una idea de qué respuesta devolverá. Algunas propiedades no siempre están presentes en una respuesta.
La API de productos del catálogo permite a un desarrollador recuperar el catálogo de productos de forma paginada. El catálogo se puede filtrar por categoría, marca y/o ofertas especiales como reversión, liquidación, etc.
datos = walmart_io.catalog_product(categoría='3944', maxId='8342714')
Una respuesta de catálogo contiene categoría, formato, página siguiente, páginas totales y una lista de elementos.
La API de productos posteriores a la búsqueda le permite recomendar productos a alguien en función de su historial de visualización de productos.
datos = walmart_io.post_browsed_products('54518466')
La respuesta proporciona los 10 elementos más relevantes para la identificación dada
Hay dos formas de buscar un producto. La primera es pasar una sola cadena en
datos = walmart_io.product_lookup('33093101')[0]
o puedes pasar una lista de cadenas
datos = walmart_io.product_lookup('33093101, 54518466, 516833054')datos = walmart_io.product_lookup(['33093101', '54518466', '516833054'])
Recuerde: product_lookup siempre devuelve una lista de WalmartProducts
bulk_product_lookup
es similar a product_lookup
, sin embargo, la versión masiva no genera errores y es un generador.
Los elementos se pasan como fragmentos de tamaño máximo 20. Si se produce un error en esa llamada, se volverá a intentar la misma llamada según la cantidad dada. Si el error persiste, se perderán todos los elementos. Pero no se perderá toda la llamada.
data = walmart_io.bulk_product_lookup('33093101, 54518466, 516833054', cantidad=1, reintentos=3)para elementos en datos:para elementos en elementos:imprimir(elemento)
Respuesta da generador de WalmartProducts
Si no está familiarizado con los generadores asíncronos; para llamar correctamente a la versión asíncrona:
data = async_walmart_io.bulk_product_lookup('33093101, 54518466, 516833054')async para elementos en datos: ...
Obtenga recomendaciones basadas en una identificación de producto determinada
datos = walmart_io.product_recommendation('54518466')
La respuesta proporciona una lista de productos relacionados.
La API de Reseñas le brinda acceso a reseñas extensas de artículos en Walmart escritas por los usuarios de Walmart.com.
datos = walmart_io.reviews('33093101')
La respuesta proporciona datos de revisión.
La API de búsqueda permite realizar búsquedas de texto en el catálogo de Walmart.com y devuelve artículos coincidentes disponibles para la venta en línea.
# Busque televisores en electrónica y ordénelos por precio creciente:data = walmart_io.search('tv', categoriaId='3944', sort='price', order='ascending')
También puedes agregar facetas a tu búsqueda.
datos = walmart_io.search('tv', filtro='marca:Samsung')
La respuesta de búsqueda devuelve una lista de productos y algunos metadatos. Devuelve un elemento facets
pero no hay detalles en la API sobre lo que podría devolver. Es una lista de algún tipo desconocido.
La API puede devolver una lista de las tiendas más cercanas a una ubicación específica. Ya sea código postal o lon/lat
datos = walmart_io.stores(lat=29.735577, lon=-95.511747)
El servicio de taxonomía expone la taxonomía utilizada para categorizar artículos en Walmart.com.
Faltan detalles sobre los parámetros en los documentos
datos = walmart_io.taxonomy()
La API de artículos de tendencia está diseñada para brindar información sobre lo que se vende más en Walmart.com en este momento.
datos = walmart_io.tendencia()
WIOpy admite el registro a través del módulo de registro. La configuración del módulo de registro puede ser tan simple como:
importar logginglogging.basicConfig(nivel=logging.INFO)