Top.Mail.Ru
Ответы
Аватар пользователя
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Ошибка отступа в коде на python

Привет всем! Ребят помогите разобраться с отступами в коде

import pandas as pd
import requests

proxies = {
'http':'http//MfeM:4V3TGw@4.53.13:8000'
}

def get_category():

url = ' https://catalog.wb.ru/catalog/gift11/catalog?appType=1&cat=130603&curr=rub&dest=-1257786&regions=80,64,38,4,115,83,33,68,70,69,30,86,75,40,1,66,48,110,31,22,71,114&sort=popular&spp=0 '

headers = {
'Accept' : '*/*',
'Accept-Language' : 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
'Connection' : 'keep-alive',
'Origin' : ' https://www.wildberries.ru ',
'Referer' : ' https://www.wildberries.ru/catalog/podarki/detyam/igrushki ',
'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/109.0.0.0 Safari/537.36',
'sec-ch-ua-mobile' : '?0',
'sec-ch-ua-platform' : 'Windows',
}

responce = requests.get(url=url, headers=headers, proxies=proxies)
return responce.json()


def prepare_items(responce): # Для обработки информации о полученных товарах
products = [] # Получаем отфильтрованную информацию о товарах
products_row = responce.get('date', {}).get('products', None) # (Проверка) Если ключа 'date' нет, возвращаем пустой словарь и в нем проверяем ключ 'products'
if products_row != None and len(products_row) > 0:
for product in products_row:
products.append({
'brand' : product.get('brand', None)
'name' : product.get('name', None)
'sale' : product.get('sale', None)
'priceU' : float(product.get('priceU', None)) / 100 if product.get('priceU', None) != None else None,
'salePriceU' : float(product.get('salePriceU', None)) / 100 if product.get('salePriceU', None) != None else None,
})

return products

Прикрпляю скрин ошибки

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект

И мы должны искать отступы во всём твоём коде?
А не пойти ли тебе %@#$@#

Аватар пользователя
Мудрец

Привет! В Python отступы имеют большое значение, так как они определяют блоки кода. В вашем коде есть несколько ошибок отступов. Вот исправленный код:

import pandas as pd
import requests

proxies = {
'http':'http//MfeM:4V3TGw@4.53.13:8000'
}

def get_category():
url = ' https://catalog.wb.ru/catalog/gift11/catalog?appType=1&cat=130603&curr=rub&dest=-1257786&regions=80,64,38,4,115,83,33,68,70,69,30,86,75,40,1,66,48,110,31,22,71,114&sort=popular&spp=0 '
headers = {
'Accept' : '*/*',
'Accept-Language' : 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
'Connection' : 'keep-alive',
'Origin' : ' https://www.wildberries.ru ',
'Referer' : ' https://www.wildberries.ru/catalog/podarki/detyam/igrushki ',
'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/109.0.0.0 Safari/537.36',
'sec-ch-ua-mobile' : '?0',
'sec-ch-ua-platform' : 'Windows',
}
responce = requests.get(url=url, headers=headers, proxies=proxies)
return responce.json()

def prepare_items(responce): # Для обработки информации о полученных товарах
products = [] # Получаем отфильтрованную информацию о товарах
products_row = responce.get('date', {}).get('products', None) # (Проверка) Если ключа 'date' нет, возвращаем пустой словарь и в нем проверяем ключ 'products'
if products_row != None and len(products_row) > 0:
for product in products_row:
products.append({
'brand' : product.get('brand', None),
'name' : product.get('name', None),
'sale' : product.get('sale', None),
'priceU' : float(product.get('priceU', None)) / 100 if product.get('priceU', None) != None else None,
'salePriceU' : float(product.get('salePriceU', None)) / 100 if product.get('salePriceU', None) != None else None,
})
return products

Аватар пользователя
Профи

Возможно, этот ответ поможет.

В данном коде присутствуют ошибки:

1. Отсутствует двоеточие после названий ключей в словаре при создании словаря в функции prepare_items.

2. Ошибка в определении прокси, необходимо исправить пропущенный двоеточие после http.

3. Ошибка в написании url, в конце строки присутствует пробел.

4. Ошибка в функции prepare_items, в строке с проверкой наличия ключа 'date' следует использовать 'data' вместо 'date'.

Исправленный код:

1234567891011121314151617181920212223242526272829303132333435363738
 import pandas as pd 
import requests 
 
proxies = { 
    'http':'http://Mc7feM:4V3TGw@4.53.13:8000' 
} 
 
def get_category(): 
    url = 'https://catalog.wb.ru/catalog/gift11/catalog?appType=1&cat=130603&curr=rub&dest=-1257786&regions=80,64,38,4,115,83,33,68,70,69,30,86,75,40,1,66,48,110,31,22,71,114&sort=popular&spp=0' 
    headers = { 
        'Accept' : '*/*', 
        'Accept-Language' : 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7', 
        'Connection' : 'keep-alive', 
        'Origin' : 'https://www.wildberries.ru', 
        'Referer' : 'https://www.wildberries.ru/catalog/podarki/detyam/igrushki', 
        '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/109.0.0.0 Safari/537.36', 
        'sec-ch-ua-mobile' : '?0', 
        'sec-ch-ua-platform' : 'Windows', 
    } 
    response = requests.get(url=url, headers=headers, proxies=proxies) 
    return response.json() 
 
def prepare_items(response): 
    products = [] 
    products_row = response.get('data', {}).get('products', None) 
    if products_row != None and len(products_row) > 0: 
        for product in products_row: 
            products.append({ 
                'brand' : product.get('brand', None), 
                'name' : product.get('name', None), 
                'sale' : product.get('sale', None), 
                'priceU' : float(product.get('priceU', None)) / 100 if product.get('priceU', None) != None else None, 
                'salePriceU' : float(product.get('salePriceU', None)) / 100 if product.get('salePriceU', None) != None else None, 
            }) 
    return products