Walmart io API の Python ラッパー。現時点ではアフィリエイト API のみをサポートしています。このプロジェクトは寄付を受け付けています
WIOpy をダウンロードするには、この github リポジトリをフォークするか、単に pip 経由で Pypi を使用します。
pip インストール WIOpy
パッケージをアップグレードするには、単に実行します
pip install WIOpy --upgrade
WIOpy 接続の作成例 重要な注意点の 1 つは、秘密キー ファイルのパスを渡す必要があることです。
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 は非同期呼び出しもサポートしています。使用するには、すべてが同じですが、呼び出しを待つ必要があり、構築されるオブジェクトが異なります。
wiopy からインポート AsyncWalmartIOasync_walmart_io = AsyncWalmartIO(...)data = await async_walmart_io.product_lookup('33093101')[0]
API を呼び出すと、オブジェクトが返されます。そのオブジェクトは、返された JSON のオブジェクト バージョンです。
オブジェクトから情報を取得するには 2 つの方法があります。
data.name
data['name']
返されるオブジェクトと返されないオブジェクトの例 (レビュー/検索は返される変数です):
review.reviewStatistics.averageOverallRating
# ネストされた呼び出し
search.facets
# オブジェクトではなく辞書のように使用できる辞書を返します
Walmart からのドキュメントが不足しているため、一部の属性はオブジェクトではなく辞書を返します。
WalmartResponse
から属性を取得すると、 response
またはNone
返されます。ただし、 None
の属性を取得しようとすると、やはりエラーが発生します。呼び出しと応答に関する追加の詳細。ただし、ドキュメントには一貫性がなく、応答スキーマなどの典型的な実践方法が欠けています。そのため、検索ファセット応答のようなものが欠落しています。ドキュメントには、それが応答に含まれていることは示されていますが、どのような種類のデータが含まれるかは示されていないためです。
応答が欠落しているか、応答がオブジェクトに変換されていない可能性がありますが、WalmartResponse をチェックして、応答が何を返すかを確認してください。一部のプロパティは応答に常に存在するとは限りません。
カタログ製品 API を使用すると、開発者はページ分割された方法で製品カタログを取得できます。カタログは、カテゴリ、ブランド、および/またはロールバック、クリアランスなどの特別オファーによってフィルタリングできます。
データ = walmart_io.catalog_product(category='3944', maxId='8342714')
カタログ応答には、カテゴリ、形式、nextPage、totalPages、およびアイテムのリストが含まれます。
閲覧した製品の投稿 API を使用すると、製品の閲覧履歴に基づいて製品を誰かに推奨できます。
データ = walmart_io.post_browsed_products('54518466')
応答は、指定された ID に関連する上位 10 項目を返します
製品を検索するには 2 つの方法があります。1 つ目は、単一の文字列を渡す方法です。
データ = walmart_io.product_lookup('33093101')[0]
または、文字列のリストを渡すこともできます
データ = walmart_io.product_lookup('33093101, 54518466, 516833054')データ = walmart_io.product_lookup(['33093101', '54518466', '516833054'])
覚えておいてください: product_lookup は常に WalmartProducts のリストを返します
bulk_product_lookup
はproduct_lookup
に似ていますが、一括バージョンではエラーが発生せず、ジェネレーターです。
項目は最大サイズ 20 のチャンクとして渡されます。その呼び出しでエラーが発生した場合は、指定された量に基づいて同じ呼び出しが再試行されます。それでもエラーが発生する場合は、すべての項目が失われます。ただし、通話全体が失われることはありません。
data = walmart_io.bulk_product_lookup('33093101, 54518466, 516833054', amount=1, retries=3)データ内のアイテムの場合:アイテム内のアイテムの場合:print(item)
応答により WalmartProducts のジェネレーターが返されます
非同期ジェネレーターに慣れていない場合は、次のことを行ってください。非同期バージョンを適切に呼び出すには:
データ内のアイテムの data = async_walmart_io.bulk_product_lookup('33093101, 54518466, 516833054')async: ...
指定された製品 ID に基づいて推奨事項を取得する
データ = walmart_io.product_recommendation('54518466')
応答すると関連製品のリストが表示されます
Reviews API を使用すると、Walmart.com のユーザーによって書かれた Walmart に関する広範な商品レビューにアクセスできます。
データ = walmart_io.reviews('33093101')
応答によりレビューデータが提供される
Search API を使用すると、Walmart.com カタログでテキスト検索を行うことができ、オンラインで販売されている一致する商品が返されます。
# 電化製品内でテレビを検索し、価格の昇順に並べ替えます:data = walmart_io.search('tv', categoryId='3944', sort='price', order='ascending')
検索にファセットを追加することもできます
データ = walmart_io.search('テレビ', フィルター='ブランド:Samsung')
検索応答により、製品のリストといくつかのメタデータが返されます。 facets
要素を返しますが、API には何が返されるかについての詳細はありません。何らかの不明なタイプのリストです
API は、指定された場所に最も近い店舗のリストを返すことができます。郵便番号または経度/緯度のいずれか
データ = walmart_io.stores(lat=29.735577, lon=-95.511747)
分類サービスは、Walmart.com で商品を分類するために使用される分類を公開します。
params に関する詳細がドキュメントにありません
データ = walmart_io.taxonomy()
Trending Items API は、Walmart.com で現在最も売れている商品に関する情報を提供するように設計されています。
データ = walmart_io.trending()
WIOpy は、ロギング モジュールを介したロギングをサポートしています。ロギング モジュールの構成は次のように簡単です。
importlogginglogging.basicConfig(level=logging.INFO)