Ошибка, json не выдает ответ

Написал пример парсера на wb(простро тренируюсь), при запуске кода выдает ошибку "raise RequestsJSONDecodeError(e.msg, e.doc, e.pos) requests.exceptions.JSONDecodeError: [Errno Expecting value] : 0" И еще, хотелось узнать, правильную ли библиотеку я импортировал что-бы сохранять результат в xlsx. Можете так же что-то порекомендовать по коду.

from dataclasses import dataclass
import requests
import json
import pyexcel_xlsx as pe


@dataclass
class Constructor:
    id: int
    title: str
    url: str
    price: float

    def __post_init__(self):
        if self.price:
            self.price = self.price / 100



def get_requests(page: int):
    headers = {
        'Accept': '*/*',
        'Accept-Language': 'ru,en-US;q=0.9,en;q=0.8,ru-RU;q=0.7',
        'Cache-Control': 'no-cache',
        'Connection': 'keep-alive',
        'Origin': 'https://www.wildberries.ru',
        'Pragma': 'no-cache',
        'Referer': 'https://www.wildberries.ru/catalog/detyam/konstruktory?sort=popular&page=97&xsubject=945',
        'Sec-Fetch-Dest': 'empty',
        'Sec-Fetch-Mode': 'cors',
        'Sec-Fetch-Site': 'cross-site',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36',
        'authorization': 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MTMxODYzNTQsInZlcnNpb24iOjIsInVzZXIiOiIzNjkwMTgzNyIsInNoYXJkX2tleSI6IjMiLCJjbGllbnRfaWQiOiJ3YiIsInNlc3Npb25faWQiOiIyNzU1ZDI5OWY1YjE0Y2UwODBlMjJhZDhiNTkxMmQwOCIsInVzZXJfcmVnaXN0cmF0aW9uX2R0IjoxNjc1MTExMTc1LCJ2YWxpZGF0aW9uX2tleSI6IjUxMGZkMmI5YWVmMzlkMTZhYWQ5MmE4YjllNjYwNGVjODBjZTA4MzRkZDkzZGVlYThiZTc0NWJlZTg0YmVlYTgiLCJwaG9uZSI6InphcVdYVXl5bGhjbGtTYm14aFpGQkE9PSJ9.qreFSx599wYPh-VhuS00dm1hHfo05_MGvUETomZVeQfd4oaf8GZplmDdNKDzwl8wkEfd6BCYSX6ewewByoBqMNNTgap26CKftLo1Aef5KKsfxlBanLwBJarN75NQQ-DiDthuXp4rM_fwIVJfl1m7jPBLb_P7qQmmIt9I2_U0YfeJbJwREjQcaUDFKQgVgbfXy4eCOhTRiKQNDPxBlWBHgJFn0xgtBjPzgOGu7ZIJH1bmZhWTKX9MMCcr2OyU-hL_F2K4vQXwgIUSf5epGsI-2pnosXiz_jg1IWorh03j8GBtmisa3rMBny_IRZcVvDS5wME8lvQAolwxggc6Ozi1ig',
        'sec-ch-ua': '"Google Chrome";v="123", "Not:A-Brand";v="8", "Chromium";v="123"',
        'sec-ch-ua-mobile': '?0',
        'sec-ch-ua-platform': '"Windows"',
    }

    params = {
        'page': page,
        'appType': '1',
        'cat': '60806',
        'curr': 'rub',
        'dest': '-7815599',
        'page': '97',
        'sort': 'popular',
        'spp': '30',
        'uclusters': '7',
        'xsubject': '945',
    }

    response = requests.get('https://catalog.wb.ru/catalog/toys1/v2/catalog', params=params, headers=headers)
    
    return response.json()



def validate_json(res_json: json)->list[Constructor]:
    all_constructor_in_page = []
    for constructor in res_json["products"]:
        all_constructor_in_page.append(
            Constructor(
                id=constructor["id"],
                title=constructor["name"],
                price=constructor["sizes"]["price"]["total"]

            )
        )
    return all_constructor_in_page


def save(list_constructor: list[Constructor]):
    data = [
        ["id", "Название", "Цена"],
            ]
    for constructor in list_constructor:
        data.append([
            constructor.id,
            constructor.title,
            constructor.price
        ])
        book_data = {"Sheet_1": data}
        new_book = pe.Book(book_data)
        new_book.save_as("constructor.xlsx")

def parse():
    all_constructor = []
    for page in range(1, 3, 1):
        res = get_requests(page=page)
        all_constructor += validate_json(res)
    save(all_constructor)

if __name__=='__main__':
    parse()
    


Ответы (1 шт):

Автор решения: Сергей Ш
import requests

page = 1
params = {
    'page': page,
    'appType': '1',
    'cat': '60806',
    'curr': 'rub',
    'dest': '-7815599',
    'sort': 'popular',
    'spp': '30',
    'uclusters': '7',
    'xsubject': '945',

}
response = requests.get('https://catalog.wb.ru/catalog/toys1/v2/catalog', params=params)

for constructor in response.json()["data"]["products"]:
    _id = constructor["id"]
    title = constructor["name"]
    price = constructor["sizes"][0]["price"]["total"]
    print(_id, title, price)

# 139900955 Конструктор лего minecraft подарочный набор 109800
# 143206489 Конструктор lego музыкальный замок Disney подарок 192800
# ...
# 176716693 Конструктор Bionicle Лава монстр, 114 деталей Аналог 51500
# 172846500 Elves, Кот ведьмы Джинкс 36300
→ Ссылка