Un wrapper python pour l'API Walmart io. Ne prend en charge que l'API d'affiliation pour le moment. Le projet est ouvert aux contributions
Pour télécharger WIOpy, créez ce dépôt github ou utilisez simplement Pypi via pip.
pip installer WIOpy
Pour mettre à niveau le package, exécutez simplement
pip installe WIOpy --upgrade
Un exemple de création d'une connexion WIOpy Une remarque importante est que vous devez transmettre le chemin du fichier de clé privée.
depuis l'importation wiopy WalmartIOwalmart_io = WalmartIO(private_key_version="1",private_key_filename="./WM_IO_private_key.pem",consumer_id='XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',publisherId="XXXXXXX", )données = walmart_io.product_lookup('33093101')[0]
WIOpy prend également en charge les appels asynchrones. Pour l'utiliser, tout sera pareil mais il faut attendre un appel et l'objet construit est différent.
depuis wiopy import AsyncWalmartIOasync_walmart_io = AsyncWalmartIO(...)data = wait async_walmart_io.product_lookup('33093101')[0]
Lors d’un appel à l’API, un objet sera renvoyé. Cet objet est une version objet du JSON renvoyé.
Il existe deux manières d'obtenir des informations sur l'objet :
data.name
data['name']
Un exemple d'un objet renvoyé et d'un autre qui ne l'est pas (la révision/recherche sont des variables renvoyées) :
review.reviewStatistics.averageOverallRating
# Appel imbriqué
search.facets
# Rend un dict qui peut désormais être utilisé comme un dict et non comme un objet
Certains attributs renverront un dict et non un objet en raison d'un manque de documentation de Walmart.
Lors de l'obtention d'un attribut d'une WalmartResponse
, il renverra soit response
, soit None
. Mais essayer d’obtenir un attribut None
générera toujours une erreur. Détails supplémentaires sur les appels et les réponses. Cependant, les documents sont incohérents et manquent de pratiques typiques telles que le schéma de réponse. C'est pourquoi il manque quelque chose comme la réponse aux facettes de recherche, car la documentation montre qu'elle se trouve dans la réponse mais pas le type de données qu'elle contiendra.
Bien qu'il puisse y avoir une réponse manquante ou qu'une réponse ne soit pas convertie en objet, veuillez consulter WalmartResponse pour avoir une idée de ce qu'une réponse renverra. Certaines propriétés ne sont pas toujours présentes dans une réponse.
L'API Catalog Product permet à un développeur de récupérer le catalogue de produits de manière paginée. Le catalogue peut être filtré par catégorie, marque et/ou par toute offre spéciale comme le retour en arrière, la liquidation, etc.
data = walmart_io.catalog_product(category='3944', maxId='8342714')
Une réponse de catalogue contient la catégorie, le format, nextPage, totalPages et une liste d'éléments
L'API des produits post-navigatés vous permet de recommander des produits à quelqu'un en fonction de son historique de visualisation des produits.
données = walmart_io.post_browsed_products('54518466')
La réponse donne les 10 éléments les plus pertinents pour l'identifiant donné
Il existe deux manières de rechercher un produit. La première consiste à transmettre une seule chaîne dans
données = walmart_io.product_lookup('33093101')[0]
ou vous pouvez passer une liste de chaînes
data = walmart_io.product_lookup('33093101, 54518466, 516833054')data = walmart_io.product_lookup(['33093101', '54518466', '516833054'])
N'oubliez pas : product_lookup renvoie toujours une liste de produits Walmart
bulk_product_lookup
est similaire à product_lookup
cependant, la version groupée ne génère pas d'erreurs et il s'agit d'un générateur.
Les éléments sont transmis sous forme de morceaux d'une taille maximale de 20. Si une erreur se produit lors de cet appel, le même appel sera réessayé en fonction du montant indiqué. Si l'erreur persiste, tous les éléments seront perdus. Mais l’intégralité de l’appel ne sera pas perdue.
data = walmart_io.bulk_product_lookup('33093101, 54518466, 516833054', montant=1, retries=3)pour les éléments dans les données :pour l'élément dans les éléments :imprimer(élément)
La réponse donne un générateur de produits Walmart
Si vous n'êtes pas familier avec les générateurs asynchrones ; pour appeler correctement la version asynchrone :
data = async_walmart_io.bulk_product_lookup('33093101, 54518466, 516833054')async pour les éléments dans data : ...
Obtenez des recommandations basées sur un identifiant de produit donné
données = walmart_io.product_recommendation('54518466')
La réponse donne une liste de produits associés
L'API Reviews vous donne accès aux critiques détaillées d'articles sur Walmart qui ont été rédigées par les utilisateurs de Walmart.com.
données = walmart_io.reviews('33093101')
La réponse donne des données d'examen
L'API de recherche permet la recherche de texte sur le catalogue Walmart.com et renvoie les articles correspondants disponibles à la vente en ligne.
# Recherchez la télévision dans l'électronique et triez par prix croissant :data = walmart_io.search('tv',categoryId='3944', sort='price', order='ascending')
Vous pouvez également ajouter des facettes à votre recherche
data = walmart_io.search('tv', filter='marque:Samsung')
La réponse de recherche renvoie une liste de produits et quelques métadonnées. Il renvoie un élément facets
mais il n'y a aucun détail sur l'API sur ce qu'il pourrait renvoyer. C'est une liste d'un type inconnu
L'API peut renvoyer une liste des magasins les plus proches d'un emplacement spécifié. Soit le code postal, soit lon/lat
données = walmart_io.stores (lat = 29,735577, lon = -95,511747)
Le service de taxonomie expose la taxonomie utilisée pour catégoriser les articles sur Walmart.com.
Les détails sur les paramètres sont absents de la documentation
données = walmart_io.taxonomy()
L'API Trending Items est conçue pour fournir des informations sur ce qui est actuellement le plus vendu sur Walmart.com.
données = walmart_io.trending()
WIOpy prend en charge la journalisation via le module de journalisation. La configuration du module de journalisation peut être aussi simple que :
importer logginglogging.basicConfig(level=logging.INFO)