Wątek przeniesiony 2023-01-13 01:06 z C# i .NET przez somekind.

Jak pobrać konkretny produkt z bazy Shopera

0

Witam,

mam pytanie - próbuję pobrać z Shopera konkretny produkt do skryptu pisanego w PYTHON-ie.
Mam już autentykacje i wywołuję:

response2 = s.get('https://xxxxx.shoparena.pl/webapi/rest/products')  

i w ten sposób dostaję listę wszystkich produktów w bazie Shoppera.

Nie mogę sobie poradzić z zastosowaniem filtrów :( ,czy ktoś byłby na tyle miły żeby wprowadzić mnie w podstawy tego tematu?

potrafię ograniczyć zapytanie do 1 produktu:

response2 = s.get('https://xxxxx.shoparena.pl/webapi/rest/products', params={'limit':1})  

ale próba zastosowania podobnie filtru:

response2 = s.get('https://xxxxx.shoparena.pl/webapi/rest/products', params={'filters':{'product_id':34}})  

daje odpowiedź:

{u'error_description': u'Decoding failed: Syntax error', u'error': u'server_error'} 

próbowałem również zastosować kodowanie JSON:

original={'filters':{'product_id':34}}
dump = json.dumps(original)
response2 = s.get('https://xxxxx.shoparena.pl/webapi/rest/products', params=dump)  

Ale w efekcie dostaję ponownie pełną listę produktów

Ktoś mógłby mi podpowiedzieć jak należy to zrobić?
Pozdrawiam serdecznie

0

Szklana kula mówi że to s.get(...) to tylko dla {'filters':{'product_id':42}}

0
_13th_Dragon napisał(a):

Szklana kula mówi że to s.get(...) to tylko dla {'filters':{'product_id':42}}

Dzięki, ale.. może jest tam coś więcej? Bo niestety nie przybliża mnie to do rozwiązania zadania

response2 = s.get('https://xxxxx.shoparena.pl/webapi/rest/products', params={'filters':{'product_id':34}})  

daje odpowiedź:

{u'error_description': u'Decoding failed: Syntax error', u'error': u'server_error'} 

nie mam pojęcia jak to wysłać tak żeby w zwrocie dostać ten jeden potrzebny produkt.

Dokumentacja API Shopera w tym temacie:
https://developers.shoper.pl/developers/api/resources/products/list#filters

Dodam jeszcze że:

original={'filters' : {'product_id':'34'}}
response2 = s.get('https://sklep602529.shoparena.pl/webapi/rest/products', params=original)  
print(response2.url)

daje

https://xxxx.shoparena.pl/webapi/rest/products?filters=product_id {u'error_description': u'Decoding failed: Syntax error', u'error': u'server_error'} 

więc jakby coś było nie tak z tym zapisem {'filters' : {'product_id':'34'}} ...

Niestety nie jestem biegły w tematach, nie mogę załapać gdzie popełniam bład
Pozdrawiam!

46

Dokumentacja shopera co mówi?

0
ledi12 napisał(a):

Dokumentacja shopera co mówi?

Znam tylko to:

https://developers.shoper.pl/developers/api/resources/products/list#filters

i niestety niewiele mi to mówi

0

Temat do zamknięcia, całość rozbijała się o prawidłowe zakodowanie url a dokładnie parametrów do filtrowania z użyciem urlencode(choć nie jestem pewien czy jest niezbędne - bo bez tego też działa)
szczegóły po linkiem : link https://stackoverflow.com/questions/70210014/using-dictionary-as-parameters-with-request-api-in-python

0
Yossarianin napisał(a):

Temat do zamknięcia, całość rozbijała się o prawidłowe zakodowanie url a dokładnie parametrów do filtrowania z użyciem urlencode(choć nie jestem pewien czy jest niezbędne - bo bez tego też działa)
szczegóły po linkiem : link https://stackoverflow.com/questions/70210014/using-dictionary-as-parameters-with-request-api-in-python

A móglbyś napisać działające polecenie pobrania tych danych? Z góry dziękuję.

1 użytkowników online, w tym zalogowanych: 0, gości: 1