Python Ebay SDK с URL-адресом JSON-объект должен быть строковой ошибкой

Я делаю свою первую попытку настроить мой код Python для API поиска eBay, и я в замешательстве.

Я еще ничего не печатал и не сохранял, потому что код не запускается. Я получаю следующую ошибку:

"file: "C:\Users\juan\Anaconda3\lib\json\_init_.py", line 348, in loads
'not {!r}'.format(s._class_._name_))
typeError: the JSON object must be str, bytes or bytearry, not "Response""

Мой код до сих пор: (я использую "URL" версию предложенных методов Ebay)

from ebaysdk.finding import Connection as finding
from bs4 import BeautifulSoup
import json
import requests

url = "http://svcs.ebay.com/services/search/FindingService/v1\
?OPERATION-NAME=findCompletedItems&\
SERVICE-VERSION=1.7.0&\
SECURITY-APPNAME=12221222-121212121-111-11111111-111111111&\
RESPONSE-DATA-FORMAT=JSON&\
REST-PAYLOAD&\
GLOBAL-ID=EBAY-MOTOR&\
keywords=Garmin+nuvi+1300+Automotive+GPS+Receiver&\
categoryId=156955&\
itemFilter(0).name=Condition&\
itemFilter(0).value=3000&\
itemFilter(1).name=FreeShippingOnly&\
itemFilter(1).value=true&\
itemFilter(2).name=SoldItemsOnly&\
itemFilter(2).value=true&\
sortOrder=PricePlusShippingLowest&\
paginationInput.entriesPerPage=2"

info = requests.get(url)
doc = json.loads(info).decode()

1 ответ

Решение

EbaySdk не возвращает вам эту ошибку.

requests.get возвращает объект Response, а не строку. json.loads требуется строка или байты, но вы дали ему ответ.

Этот объект Response имеет свою собственную функцию JSON

info = requests.get(url)
doc = info.json()
Другие вопросы по тегам