Um wrapper python para a API Walmart io. Suporta apenas a API Affiliate por enquanto. O projeto está aberto a contribuições
Para baixar o WIOpy, bifurque este repositório do github ou simplesmente use o Pypi via pip.
pip instalar WIOpy
Para atualizar o pacote simplesmente execute
pip instalar WIOpy --upgrade
Um exemplo de criação de uma conexão WIOpy Uma observação importante é que você precisa passar o caminho do arquivo de chave privada.
de importação wiopy WalmartIOwalmart_io = WalmartIO(private_key_version="1",private_key_filename="./WM_IO_private_key.pem",consumer_id='XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',publisherId="XXXXXXX", )dados = walmart_io.product_lookup('33093101')[0]
WIOpy também oferece suporte a chamadas assíncronas. Para usar tudo será igual mas é preciso aguardar uma chamada e o objeto construído é diferente.
de importação wiopy AsyncWalmartIOasync_walmart_io = AsyncWalmartIO(...)data = aguardar async_walmart_io.product_lookup('33093101')[0]
Ao fazer uma chamada à API, um objeto será retornado. Esse objeto é uma versão do objeto JSON retornado.
Existem duas maneiras de obter informações do objeto:
data.name
data['name']
Um exemplo de um objeto retornado e outro que não é (revisão/pesquisa são variáveis retornadas):
review.reviewStatistics.averageOverallRating
# Chamada aninhada
search.facets
# Devolve um dict que agora pode ser usado como um dict e não como um objeto
Alguns atributos retornarão um dict e não um objeto devido à falta de documentação do Walmart.
Ao obter um atributo de WalmartResponse
, ele retornará response
ou None
. Mas tentar obter um atributo None
ainda gerará um erro. Detalhes extras sobre chamadas e respostas. No entanto, os documentos são inconsistentes e carecem de práticas típicas, como esquema de resposta. É por isso que falta algo como a resposta das facetas de pesquisa porque os documentos mostram que ela está na resposta, mas não que tipo de dados ela conterá.
Embora possa haver uma resposta faltando ou uma resposta não sendo convertida em um objeto, verifique WalmartResponse para ter uma ideia do que uma resposta retornará. Algumas propriedades nem sempre estão presentes em uma resposta.
A API de catálogo de produtos permite que um desenvolvedor recupere o catálogo de produtos de forma paginada. O catálogo pode ser filtrado por categoria, marca e/ou ofertas especiais como reversão, liquidação, etc.
dados = walmart_io.catalog_product(category='3944', maxId='8342714')
Uma resposta do catálogo contém categoria, formato, nextPage, totalPages e uma lista de itens
A API de produtos pós-navegados permite que você recomende produtos a alguém com base em seu histórico de visualização de produtos.
dados = walmart_io.post_browsed_products('54518466')
A resposta fornece os 10 principais itens relevantes para o ID fornecido
Existem duas maneiras de pesquisar um produto. A primeira é passar uma única string no
dados = walmart_io.product_lookup('33093101')[0]
ou você pode passar uma lista de strings
dados = walmart_io.product_lookup('33093101, 54518466, 516833054')dados = walmart_io.product_lookup(['33093101', '54518466', '516833054'])
Lembre-se: product_lookup sempre retorna uma lista de produtos do Walmart
bulk_product_lookup
é semelhante a product_lookup
, porém, a versão em massa não gera erros e é um gerador.
Os itens são passados como blocos de tamanho máximo 20. Se ocorrer um erro nessa chamada, a mesma chamada será repetida com base no valor fornecido. Se o erro persistir, todos os itens serão perdidos. Mas a chamada inteira não será perdida.
data = walmart_io.bulk_product_lookup('33093101, 54518466, 516833054', amount=1, retries=3)para itens em dados:para item em itens:print(item)
Resposta dá gerador de WalmartProducts
Se você não está familiarizado com geradores assíncronos; para chamar corretamente a versão assíncrona:
data = async_walmart_io.bulk_product_lookup('33093101, 54518466, 516833054')assíncrono para itens em dados: ...
Obtenha recomendações com base em um determinado ID de produto
dados = walmart_io.product_recommendation('54518466')
A resposta fornece uma lista de produtos relacionados
A API de avaliações dá acesso a extensas análises de itens no Walmart que foram escritas pelos usuários do Walmart.com
dados = walmart_io.reviews('33093101')
A resposta fornece dados de revisão
A API de pesquisa permite a pesquisa de texto no catálogo do Walmart.com e retorna itens correspondentes disponíveis para venda online.
# Pesquise tv em eletrônicos e classifique aumentando o preço:data = walmart_io.search('tv', categoryId='3944', sort='price', order='acrescenting')
Você também pode adicionar facetas à sua pesquisa
dados = walmart_io.search('tv', filter='marca:Samsung')
A resposta da pesquisa retorna uma lista de produtos e alguns metadados. Ele retorna um elemento facets
, mas não há detalhes na API sobre o que ele poderia retornar. É uma lista de algum tipo desconhecido
A API pode retornar uma lista das lojas mais próximas de um local especificado. CEP ou lon/lat
dados = walmart_io.stores (lat = 29,735577, lon = -95,511747)
O serviço de taxonomia expõe a taxonomia usada para categorizar itens no Walmart.com.
Detalhes sobre parâmetros estão faltando nos documentos
dados = walmart_io.taxonomy()
A API Trending Items foi projetada para fornecer informações sobre o que é mais vendido no Walmart.com no momento.
dados = walmart_io.trending()
WIOpy suporta registro por meio do módulo de registro. A configuração do módulo de registro pode ser tão simples quanto:
importar logginglogging.basicConfig(level=logging.INFO)