Как регулярным выражением вырезать из списка
Дан список - 17 элементов. В каждом элементе как бы свой список, но это строка.
Как из каждого элемента регулярным выражением вырезать текст ,который стоит по счету во вторых кавычках?
Должен сформироваться второй список . Пример списка:
[Вытяжка для настенного монтажа, Компактная посудомоечная машина, Газовая варочная панель, .... ]
первый элемент в списке вот такая строка:
["N 70","Вытяжка для настенного монтажа","","60 cm","нержавеющая сталь","D65BCP2N0"
Список
lst = ['["N 70","Вытяжка для настенного монтажа","","60 cm","нержавеющая сталь","D65BCP2N0"', '["Serie | 2","Компактная посудомоечная машина","","55 cm","Белый","SKS41E11RUB"', '["Serie | 4","Газовая варочная панель","","60 cm","Pearl white","PGP6B1B60R"', '["","Комплект для смены цвета, для Tassimo TAS20.., коричневый орех","","","","00649058"', '["","Комплект для смены цвета, для Tassimo TAS20.., жёлтый лайм","","","","00649057"', '["","Комплект для смены цвета, для Tassimo TAS20.., мятный голубой","","","","00649056"', '["","Комплект для смены цвета, для Tassimo TAS20.., клубничный красный","","","","00649055"', '["","Кольцо для WOK-конфорки","","","","00647832"', '["","Кольцо для WOK-конфорки","","","","00647535"', '["","Любителям итальянской кухни: набор PastaPassion, для MUM8.., MUMX..","","","","00576586"', '["","Защитный кожух Textile Protect для TDS16.., TDS20.., TDS22.., TDS35..,","TDS37.., TDS38.., TDS45..","","","00571510"', '["","Телескопические направляющие для 3 уровней, комплект","","","","00475131"', '["","Мясорубка + адаптер для кухонного комбайна, для MUM8.., MUMXL..","","","","00464423"', '["","Насадка-терка для сыра / шоколада, для MUM8..","","","","00463718"', '["","Насадка для приготовления спагетти, для MUM8.., MUMXL..","","","","00463688"', '["","Декоративная планка; цвет \\"сталь\\"","","","","00299984"', '["","Комплект для установки компактных посудомоечных машин","","","","00207709"']
Напишите пожалуйста готовое решение,которое можно вставить в редактор и запустить.
Ответы (2 шт):
Автор решения: Эникейщик
→ Ссылка
Лучше, конечно, сразу правильно форматировать исходный список там, где он берется, но можно и так:
res = []
for el in lst:
res.append(el.split(",")[1].replace('"',''))
Автор решения: insolor
→ Ссылка
Можно использовать функцию ast.literal_eval, но нужно будет добавить закрывающую скобку в конце каждой строки:
import ast
lst = ['["N 70","Вытяжка для настенного монтажа","","60 cm","нержавеющая сталь","D65BCP2N0"', '["Serie | 2","Компактная посудомоечная машина","","55 cm","Белый","SKS41E11RUB"', '["Serie | 4","Газовая варочная панель","","60 cm","Pearl white","PGP6B1B60R"', '["","Комплект для смены цвета, для Tassimo TAS20.., коричневый орех","","","","00649058"', '["","Комплект для смены цвета, для Tassimo TAS20.., жёлтый лайм","","","","00649057"', '["","Комплект для смены цвета, для Tassimo TAS20.., мятный голубой","","","","00649056"', '["","Комплект для смены цвета, для Tassimo TAS20.., клубничный красный","","","","00649055"', '["","Кольцо для WOK-конфорки","","","","00647832"', '["","Кольцо для WOK-конфорки","","","","00647535"', '["","Любителям итальянской кухни: набор PastaPassion, для MUM8.., MUMX..","","","","00576586"', '["","Защитный кожух Textile Protect для TDS16.., TDS20.., TDS22.., TDS35..,","TDS37.., TDS38.., TDS45..","","","00571510"', '["","Телескопические направляющие для 3 уровней, комплект","","","","00475131"', '["","Мясорубка + адаптер для кухонного комбайна, для MUM8.., MUMXL..","","","","00464423"', '["","Насадка-терка для сыра / шоколада, для MUM8..","","","","00463718"', '["","Насадка для приготовления спагетти, для MUM8.., MUMXL..","","","","00463688"', '["","Декоративная планка; цвет \\"сталь\\"","","","","00299984"', '["","Комплект для установки компактных посудомоечных машин","","","","00207709"']
for item in lst:
print(ast.literal_eval(item+']'))
Вывод:
['N 70', 'Вытяжка для настенного монтажа', '', '60 cm', 'нержавеющая сталь', 'D65BCP2N0']
['Serie | 2', 'Компактная посудомоечная машина', '', '55 cm', 'Белый', 'SKS41E11RUB']
['Serie | 4', 'Газовая варочная панель', '', '60 cm', 'Pearl white', 'PGP6B1B60R']
['', 'Комплект для смены цвета, для Tassimo TAS20.., коричневый орех', '', '', '', '00649058']
['', 'Комплект для смены цвета, для Tassimo TAS20.., жёлтый лайм', '', '', '', '00649057']
['', 'Комплект для смены цвета, для Tassimo TAS20.., мятный голубой', '', '', '', '00649056']
['', 'Комплект для смены цвета, для Tassimo TAS20.., клубничный красный', '', '', '', '00649055']
['', 'Кольцо для WOK-конфорки', '', '', '', '00647832']
['', 'Кольцо для WOK-конфорки', '', '', '', '00647535']
['', 'Любителям итальянской кухни: набор PastaPassion, для MUM8.., MUMX..', '', '', '', '00576586']
['', 'Защитный кожух Textile Protect для TDS16.., TDS20.., TDS22.., TDS35..,', 'TDS37.., TDS38.., TDS45..', '', '', '00571510']
['', 'Телескопические направляющие для 3 уровней, комплект', '', '', '', '00475131']
['', 'Мясорубка + адаптер для кухонного комбайна, для MUM8.., MUMXL..', '', '', '', '00464423']
['', 'Насадка-терка для сыра / шоколада, для MUM8..', '', '', '', '00463718']
['', 'Насадка для приготовления спагетти, для MUM8.., MUMXL..', '', '', '', '00463688']
['', 'Декоративная планка; цвет "сталь"', '', '', '', '00299984']
['', 'Комплект для установки компактных посудомоечных машин', '', '', '', '00207709']
Или через json.loads:
import json
for item in lst:
print(json.loads(item+']'))
Результат будет тот же.