Python: как напечатать только n-ую строку в результате print ()

Попробуйте это:

{
    "query": {
        "range" : {
            "price" : {
                "gte" : 1000,
                "lte" : 2000
            }
        }
    }
}

Запрос диапазона

Совпадает с документами с полями, которые имеют термины в определенном диапазоне. Тип запроса Lucene зависит от типа поля, для строковых полей, TermRangeQuery, а для полей число / дата - запрос NumericRangeQuery.

gte - больше, чем или равно

lte - меньше или равно

https://www.elastic.co/guide/en/elasticsearch/reference/current/ запрос-DSL-диапазона query.html

0
задан Patrick Artner 19 January 2019 в 12:07
поделиться

4 ответа

Сделайте следующее:

product_sizes = view_product.find('dl', id='dl_1')
c = 0 

for product_size in product_sizes.find_all('li'):
    if c == 1: 
        print(product_size.span.text)
    c = c + 1

Это даст вам желаемый результат, который вы ищете:

36
0
ответ дан Loss of human identity 19 January 2019 в 12:07
поделиться

product_size = product_size.span.text[0] выведет символ в 1-й позиции строки, следовательно, вы получаете 3, 3, 3, 3, 3, 4 вместо 35, 36, 37, 38, 39, 40

Нет необходимости выполнять цикл for. Если вам нужен 2-й элемент из product_sizes.find_all('li'), вам просто нужно вызвать эту позицию с помощью product_sizes.find_all('li')[1]

. Вы можете сделать это в меньшем количестве строк кода, как показано ниже, но просто для демонстрации логики. .

#Get all elements in view_product dl, id='dl_1'
product_sizes = view_product.find('dl', id='dl_1')

# From product_sizes, find all the 'li' tags and choose the 2nd element
product_size = product_sizes.find_all('li')[1]

# Get the text
product_size = product_size.span.text

# print the text
print(product_size)
0
ответ дан Jonathan Leffler 19 January 2019 в 12:07
поделиться

Вам, вероятно, не нужен цикл для достижения того, что вы ищете.

findall() #It returns a list

Вы можете просто сделать, как

product_sizes.find_all('li')

, который возвращает список в качестве вывода, а затем вы можете нарезать в соответствии с вашими требованиями. Например, произнесите 2nd Element затем

print(product_sizes.find_all('li')[1].text)

Наконец, ваш код будет выглядеть следующим образом

product_sizes = view_product.find('dl', id='dl_1')
print(product_sizes.find_all('li')[1].text) #Prints second element.

Вывод:

36
0
ответ дан Ranjith Udayakumar 19 January 2019 в 12:07
поделиться

Спасибо всем за ваш вклад. Я перепробовал все и получил хороший ответ. Кажется, достаточно просто. Причина, по которой я хочу это, потому что я хочу напечатать его в формате csv в одну строку, и всякий раз, когда он получил ошибку, я хочу, чтобы он оставлялся пустым, чтобы он оставлял место для других данных, как в электронной таблице. Но это другая проблема для другого дня. Хочешь учиться 1-му, а потом, если я все еще застрял, спросит в новой теме (?).

Кстати, ниже приведен код, который я пишу на основе знаний, которые я получаю от каждого ответа, который вы, ребята, даете здесь.

product_sizes = view_product.find('dl', id='dl_1')
product_size01 = product_sizes.find_all('li')[0].text.replace('\r', '').replace('\n', '').replace(" ","")
product_size02 = product_sizes.find_all('li')[1].text.replace('\r', '').replace('\n', '').replace(" ","")
product_size03 = product_sizes.find_all('li')[2].text.replace('\r', '').replace('\n', '').replace(" ","")
product_size04 = product_sizes.find_all('li')[3].text.replace('\r', '').replace('\n', '').replace(" ","")
product_size05 = product_sizes.find_all('li')[4].text.replace('\r', '').replace('\n', '').replace(" ","")
product_size06 = product_sizes.find_all('li')[5].text.replace('\r', '').replace('\n', '').replace(" ","")
product_size07 = product_sizes.find_all('li')[6].text.replace('\r', '').replace('\n', '').replace(" ","")
product_size08 = product_sizes.find_all('li')[7].text.replace('\r', '').replace('\n', '').replace(" ","")
product_size09 = product_sizes.find_all('li')[8].text.replace('\r', '').replace('\n', '').replace(" ","")
product_size10 = product_sizes.find_all('li')[9].text.replace('\r', '').replace('\n', '').replace(" ","")

Спасибо вам, ребята, за быстрый ответ и отличное сообщество.

0
ответ дан Muhammad Suhaimi Bin Rosli 19 January 2019 в 12:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: