заархивировать список в python - PullRequest
0 голосов
/ 26 мая 2020

Я сделал скребок для тявканья. Тайминги удаляются в списке, а затем соединяются вместе, чтобы добавить между ними знак вертикальной черты (|). Но проблема возникает, когда есть два тайминга для одного дня, например

Fri
8:00 am - 12:30 pm
5:45 pm - 7:00 pm

, а на следующий день одно время:

Sat
8:00 am - 1:00 pm

, поэтому он заархивирует список примерно как Fri 8:00 am - 12:30 pm | 5:45 pm - 7:00 pm, Sat| 8:00 am - 1:00 pm поэтому мне нужен метод, чтобы закрепить его соответствующим образом, чтобы он записывал знак трубы в нужном месте.

Ожидаемый результат:

Fri 8:00 am - 12:30 pm, 5:45 pm - 7:00 pm | Sat 8:00 am - 1:00 pm

, чтобы он знает, где заканчивается день, и ставит там трубку. Ниже приведен код, реализованный для извлечения времени и его архивирования:

timings = response.xpath('//table/descendant-or-self::*/text()').extract()
timings = [i for i in timings if 'now' not in i]
timings = list(zip(timings[::2], timings[1::2]))
timings = ' | '.join(str(elem) for elem in timings).replace("'", "").replace("(", "").replace(")", "")

Я буду благодарен за любую помощь.

1 Ответ

0 голосов
/ 26 мая 2020

так просто

mystr = 'Fri 8:00 am - 12:30 pm 5:45 pm - 7:00 pm Sat 8:00 am - 1:00 pm'
mystr = mystr.replace(' S',' | S')
mystr
>>> 'Fri 8:00 am - 12:30 pm 5:45 pm - 7:00 pm | Sat 8:00 am - 1:00 pm'
...