пропуск полной строки, если len () столбца меньше чем 10 в python - PullRequest
0 голосов
/ 02 июня 2019

Я пытаюсь применить оператор if в моем скрипте просмотра django, который пропустил бы всю строку продукта, если длина описания меньше 10, но я не знаю, как этого добиться ..

Это мое представление Django, которое вызывает API и сохраняет данные в моей базе данных, и, как вы увидите в разделе с комментариями, это то, с чем я до сих пор выступал:

def api_data(request):
    if request.GET.get('mybtn'):  # to improve, == 'something':
        resp_1 = requests.get(
            "https://www.headout.com/api/public/v1/product/listing/list-by/city?language=fr&cityCode=PARIS&limit=5000&currencyCode=CAD",
            headers={
                "Headout-Auth": HEADOUT_PRODUCTION_API_KEY
            })
        resp_1_data = resp_1.json()
        base_url_2 = "https://www.headout.com/api/public/v1/product/get/"

        translator = Translator()

        for item in resp_1_data['items']:
            print('parsing, translating and saving item {}'.format(item['id']))
            # concat ID to the URL string
            url = '{}{}'.format(base_url_2, item['id'] + '?language=fr')

            # make the HTTP request
            resp_2 = requests.get(
                url,
                headers={
                    "Headout-Auth": HEADOUT_PRODUCTION_API_KEY
                })
            resp_2_data = resp_2.json()


            descriptiontxt = resp_2_data['contentListHtml'][0]['html'][0:2040] + ' ...'

            soup = BeautifulSoup(descriptiontxt, 'lxml')
            parsed = soup.find('p').text


            #what I tried so far

            #if len(parsed) < 10:
            #   skip the complete row and go to the next one


            translation = translator.translate(parsed, dest='fr')

            titlename = item['name']
            titlefr = translator.translate(titlename, dest='fr')

            destinationname = item['city']['name']
            destinationfr = translator.translate(destinationname, dest='fr')

            Product.objects.get_or_create(
                title=titlefr.text,
                destination=destinationfr.text,
                description=translation.text,
                link=item['canonicalUrl'],
                image=item['image']['url']
            )

            time.sleep(2)

    return render(request, "form.html")

Пожалуйста, помогите.

1 Ответ

1 голос
/ 02 июня 2019

Вам просто нужно continue, если ваша длина меньше 10, например,

if len(parsed) < 10:
    continue

Это пропустит текущую итерацию.

Надеюсь, этопомогает!

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