Мое заявление If, кажется, не работает - PullRequest
0 голосов
/ 26 апреля 2019

Попытка проверить, существует ли значение тега / данных, прежде чем продолжить, и продолжать получать ошибку индекса.

Это моя единственная строка, которая не работает, если len (data ['descriptive'] [0] ['partNumber)'])> 0:

Ниже приведена последняя логика, которую я пытаюсь заставить работать

    jvscript = soup.select_one('#skuDescriptivattribute').text
    prdDts = soup.find_all('div',class_="product-details") 

    if len(jvscript) > 0:
        data = jvscript
        data = json.loads(data)
        if len(data['descriptive'][0]['partNumber']) > 0:
            dets['sku'] = data['descriptive'][0]['partNumber']
        else:
            print("SKU NOT FOUND")
    elif len(prdDts) > 0:
        print("Out Of Stock")
    else:
        print("No Sku Available")

Я хочу проверить, существует ли тег / значение "partnumber".Если это так, то захватите его, если нет, то будет заполнено простое стандартное сообщение

Ошибка в консоли при запуске:

if len(data['descriptive'][0]['partNumber']) > 0:

IndexError: list index out of range

Если япопробуйте другое предложение ниже, я получаю эту ошибку:

if 'partNumber' in data['descriptive'][0]:

IndexError: list index out of range

Теперь я получаю эту ошибку после предложений и пробую ее снова в списке

jvscript = soup.select_one('#skuDescriptivattribute').text
AttributeError: 'NoneType' object has no attribute 'text'

Прежде чем продолжить, я хочу проверить, существуют ли теги или данные на странице.Я запустил свой паук против 2655 URL-адресов ... и как только я открыл получившийся файл, я обнаружил, что большинство записей, в которых были мои общие сообщения, как указано выше, не существует для начала и по другой причине, поэтому я пытаюсь добавить его.вышеупомянутая логика, чтобы я мог проверить, какие теги существуют, так что я знаю, как заполнить свой список значений и сохранить его соответствующим образом. Я скорее предоставляю пользователю полезное сообщение, а затем просто общий заполнитель слова «Ску идет сюда»

1 Ответ

0 голосов
/ 26 апреля 2019

вы можете проверить, находится ли 'partNumber' в словаре следующим образом:

if 'partNumber' in data['descriptive'][0]:
    ...

ИЗМЕНИТЬ удалил ненужные .keys

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...