Срез для строки

Fortron

Новичок
Пользователь
Май 3, 2020
44
2
8
Как сделать срез для строки ?
Срез начинается после слова " "title": " и заканчивается после первой запятой - ",".
В итоге должен быть сформирован список всех срезов.

Пример: первый срез и первый элемент в списке - "Холодильник Side by Side".
Уточнение - элемент с кавычками, это все первый элемент, а не только текст без кавычек.

Код:
[<form action="/fater/json/productlist?type=PRODUCT_LIST" class="js-ajax-request" data-ajax='{"url":"/fater/json/productlist?type=PRODUCT_LIST" ,  "requestParamSeries": [{"name":"standardFilters","checkFor":"values"},{"name":"rangeFilters","checkFor":"minValue","checkFor2":"maxValue"}], "dataRendering":true, "method":"POST"}' data-ajax-id="ajax-productlist" data-current-state-ajax-uri="/fater/json/productlist?categoryString=outletproducts&amp;type=PRODUCT_LIST" id="command" method="post" onsubmit="return false;"><script data-init-data="ajax-productlist" data-no-initial-callup="true" type="application/json">
                        {"response":{"cheap":"0","expensive":"0","items":[{"productIndex":"0","sku":"KA90IVI20R","type":"shop","title":"Холодильник Side by Side","isInComparison":false,"comparable":true,"productsInComparisonSize":0,"headers":["iQ500","Холодильник Side by Side","","177 x 91 cm","Inox-easyclean","KA90IVI20R"],"price":{"value":164990.0,"displayValue":"164 990,00 ₽"},"stockStatus":{"trafficLight":"green","text":"[G11]","buyable":true,"permanentlyNotAvailable":false},"link":"/fater/outlet/KA90IVI20R?breadcrumb=","productImage":{"src":"//media3.123.com/Product_Shots/{width}x{height}/MCSA00762608_E6797_KA90IVI20G_407519_def.jpg","alt":"KA90IVI20R"},"hookline":"Холодильник coolDuo серии iQ 500 типа \"side-by-side\" с технологией NoFrost, дополнительно оснащен дозатором для воды и льда.","keyBenefits":["Многопоточная система охлаждения multiAirflow обеспечивает равномерное распределение воздуха и охлаждение на всех уровнях холодильника.","Технология noFrost защищает от образования инея и избавит вас от необходимости размораживать холодильник.","Холодильник шириной 70см - существенное увеличение полезного объема для хранения продуктов.","Функция superFreezing понижает температуру на заданный промежуток времени, чтобы быстрее заморозить только что добавленные продукты.","Функция superCooling, или 'суперохлаждение', уменьшает температуру на заданное время,
 

fedor11

Новичок
Пользователь
Май 28, 2020
8
1
1
Здесь тебе надо просто найти индекс "title" и индекс "," и сделать срез между ними
 

Fortron

Новичок
Пользователь
Май 3, 2020
44
2
8
Все вот рабочий скрипт. Он через запятую создает список всех срезов.

Код:
import re

def find_segments(text, start, end):
    pattern = re.escape(start) + r'(.*?)' + re.escape(end)
    return re.findall(pattern, text, flags=re.DOTALL)
print(find_segments(str(items), '"title":', ','))

items =

Код:
[<form action="/fater/json/productlist?type=PRODUCT_LIST" class="js-ajax-request" data-ajax='{"url":"/fater/json/productlist?type=PRODUCT_LIST" ,  "requestParamSeries": [{"name":"standardFilters","checkFor":"values"},{"name":"rangeFilters","checkFor":"minValue","checkFor2":"maxValue"}], "dataRendering":true, "method":"POST"}' data-ajax-id="ajax-productlist" data-current-state-ajax-uri="/fater/json/productlist?categoryString=outletproducts&amp;type=PRODUCT_LIST" id="command" method="post" onsubmit="return false;"><script data-init-data="ajax-productlist" data-no-initial-callup="true" type="application/json">
                        {"response":{"cheap":"0","expensive":"0","items":[{"productIndex":"0","sku":"KA90IVI20R","type":"shop","title":"Холодильник Side by Side","isInComparison":false,"comparable":true,"productsInComparisonSize":0,"headers":["iQ500","Холодильник Side by Side","","177 x 91 cm","Inox-easyclean","KA90IVI20R"],"price":{"value":164990.0,"displayValue":"164 990,00 ₽"},"stockStatus":{"trafficLight":"green","text":"[G11]","buyable":true,"permanentlyNotAvailable":false},"link":"/fater/outlet/KA90IVI20R?breadcrumb=","productImage":{"src":"//media3.123.com/Product_Shots/{width}x{height}/MCSA00762608_E6797_KA90IVI20G_407519_def.jpg","alt":"KA90IVI20R"},"hookline":"Холодильник coolDuo серии iQ 500 типа \"side-by-side\" с технологией NoFrost, дополнительно оснащен дозатором для воды и льда.","keyBenefits":["Многопоточная система охлаждения multiAirflow обеспечивает равномерное распределение воздуха и охлаждение на всех уровнях холодильника.","Технология noFrost защищает от образования инея и избавит вас от необходимости размораживать холодильник.","Холодильник шириной 70см - существенное увеличение полезного объема для хранения продуктов.","Функция superFreezing понижает температуру на заданный промежуток времени, чтобы быстрее заморозить только что добавленные продукты.","Функция superCooling, или 'суперохлаждение', уменьшает температуру на заданное время,
 
Последнее редактирование:

fedor11

Новичок
Пользователь
Май 28, 2020
8
1
1
у тебя же Python3 так?
 

fedor11

Новичок
Пользователь
Май 28, 2020
8
1
1
Если да, то ты мог воспользоваться встроенными функциями языка, функция index() возвращает индекс первого в хождение элемента в данную строку, а срез ты мог сделать [] так, я же правильно понимаю задачу?
 

Форум IT Специалистов