Ein Python-Wrapper für die Walmart io API. Unterstützt derzeit nur die Affiliate-API. Das Projekt ist offen für Beiträge
Um WIOpy herunterzuladen, forken Sie entweder dieses Github-Repo oder verwenden Sie einfach Pypi über Pip.
pip installiere WIOpy
Um das Paket zu aktualisieren, führen Sie es einfach aus
pip install WIOpy --upgrade
Ein Beispiel für die Erstellung einer WIOpy-Verbindung. Ein wichtiger Hinweis ist, dass Sie den Dateipfad des privaten Schlüssels übergeben müssen.
from 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", )data = walmart_io.product_lookup('33093101')[0]
WIOpy unterstützt auch asynchrone Aufrufe. Bei der Verwendung ist alles gleich, aber Sie müssen auf einen Anruf warten und das konstruierte Objekt ist anders.
from wiopy import AsyncWalmartIOasync_walmart_io = AsyncWalmartIO(...)data = waiting async_walmart_io.product_lookup('33093101')[0]
Bei einem Aufruf der API wird ein Objekt zurückgegeben. Dieses Objekt ist eine Objektversion des zurückgegebenen JSON.
Es gibt zwei Möglichkeiten, Informationen vom Objekt abzurufen:
data.name
data['name']
Ein Beispiel für ein zurückgegebenes Objekt und eines, das nicht zurückgegeben wird (Überprüfung/Suche sind zurückgegebene Variablen):
review.reviewStatistics.averageOverallRating
# Verschachtelter Aufruf
search.facets
# Gibt ein Diktat zurück, das jetzt wie ein Diktat und nicht wie ein Objekt verwendet werden kann
Einige Attribute geben aufgrund fehlender Dokumentation von Walmart ein Diktat und kein Objekt zurück.
Wenn ein Attribut von WalmartResponse
abgerufen wird, wird entweder response
oder None
zurückgegeben. Der Versuch, das Attribut None
abzurufen, führt jedoch immer noch zu einem Fehler. Zusätzliche Details zu Anrufen und Antworten. Allerdings sind die Dokumente inkonsistent und es fehlen typische Vorgehensweisen wie Antwortschemata. Aus diesem Grund fehlt so etwas wie die Suchfacetten-Antwort, weil in den Dokumenten zwar angegeben ist, dass sie in der Antwort enthalten ist, aber nicht, welche Art von Daten sie enthalten wird.
Auch wenn möglicherweise eine Antwort fehlt oder nicht in ein Objekt konvertiert wird, überprüfen Sie bitte WalmartResponse, um eine Vorstellung davon zu erhalten, was eine Antwort zurückgibt. Einige Eigenschaften sind in einer Antwort nicht immer vorhanden.
Mit der Katalogprodukt-API kann ein Entwickler den Produktkatalog in paginierter Form abrufen. Der Katalog kann nach Kategorie, Marke und/oder Sonderangeboten wie Rollback, Ausverkauf usw. gefiltert werden.
data = walmart_io.catalog_product(category='3944', maxId='8342714')
Eine Katalogantwort enthält Kategorie, Format, nextPage, totalPages und eine Liste von Elementen
Mit der API für nach durchsuchte Produkte können Sie jemandem Produkte basierend auf seinem Produktansichtsverlauf empfehlen.
data = walmart_io.post_browsed_products('54518466')
Die Antwort gibt die 10 relevantesten Elemente für die angegebene ID an
Es gibt zwei Möglichkeiten, ein Produkt zu suchen. Die erste besteht darin, eine einzelne Zeichenfolge zu übergeben
data = walmart_io.product_lookup('33093101')[0]
oder Sie können eine Liste von Zeichenfolgen übergeben
data = walmart_io.product_lookup('33093101, 54518466, 516833054')data = walmart_io.product_lookup(['33093101', '54518466', '516833054'])
Denken Sie daran: product_lookup gibt immer eine Liste von WalmartProducts zurück
bulk_product_lookup
ähnelt product_lookup
, die Bulk-Version löst jedoch keine Fehler aus und ist ein Generator.
Elemente werden als Blöcke mit einer maximalen Größe von 20 übergeben. Wenn bei diesem Aufruf ein Fehler auftritt, wird derselbe Aufruf basierend auf der angegebenen Menge wiederholt. Wenn der Fehler weiterhin auftritt, gehen alle Elemente verloren. Es geht jedoch nicht der gesamte Anruf verloren.
data = walmart_io.bulk_product_lookup('33093101, 54518466, 516833054', amount=1, retries=3)for items in data:for item in items:print(item)
Antwort gibt Generator von WalmartProducts
Wenn Sie mit asynchronen Generatoren nicht vertraut sind; So rufen Sie die asynchrone Version ordnungsgemäß auf:
data = async_walmart_io.bulk_product_lookup('33093101, 54518466, 516833054')async für Elemente in Daten: ...
Erhalten Sie Empfehlungen basierend auf einer bestimmten Produkt-ID
data = walmart_io.product_recommendation('54518466')
Die Antwort enthält eine Liste verwandter Produkte
Mit der Reviews API erhalten Sie Zugriff auf die umfangreichen Artikelbewertungen auf Walmart, die von den Benutzern von Walmart.com verfasst wurden
data = walmart_io.reviews('33093101')
Die Antwort liefert Bewertungsdaten
Die Such-API ermöglicht die Textsuche im Walmart.com-Katalog und gibt passende, online zum Verkauf stehende Artikel zurück.
# Nach „tv“ im Bereich „Elektronik“ suchen und nach steigendem Preis sortieren:data = walmart_io.search('tv', CategoryId='3944', sort='price', order='ascending')
Sie können Ihrer Suche auch Facetten hinzufügen
data = walmart_io.search('tv', filter='brand:Samsung')
Die Suchantwort gibt eine Liste der Produkte und einige Metadaten zurück. Es gibt ein facets
zurück, aber es gibt keine Details zur API darüber, was es zurückgeben könnte. Es handelt sich um eine Liste unbekannten Typs
Die API kann eine Liste der nächstgelegenen Geschäfte in der Nähe eines bestimmten Standorts zurückgeben. Entweder Postleitzahl oder Längen-/Breitengrad
data = walmart_io.stores(lat=29.735577, lon=-95.511747)
Der Taxonomiedienst stellt die Taxonomie offen, die zur Kategorisierung von Artikeln auf Walmart.com verwendet wird.
Details zu Parametern fehlen in den Dokumenten
data = walmart_io.taxonomy()
Die Trending Items-API soll Informationen darüber liefern, was derzeit auf Walmart.com am meistverkauften ist.
data = walmart_io.trending()
WIOpy unterstützt die Protokollierung über das Protokollierungsmodul. Die Konfiguration des Protokollierungsmoduls kann so einfach sein wie:
import logginglogging.basicConfig(level=logging.INFO)