Если input
- это просто строка, то for line in input
не выполняет итерацию строк, а итерацию символов. Таким образом, 'lucas'
никогда не будет найдено в односимвольной строке, а tableInput
не будет назначено. Поведение на основе строки итерации происходит только тогда, когда объект является файлом.
Если вы хотите перебрать каждую строку строки, вам нужно сделать:
for line in input.split('\n'):
...
Поскольку у вас есть BeautifulSoup, я бы сказал, что было бы намного лучше использовать это для чтения значения из первой ячейки в каждой строке, а не полагаться на грубый и хрупкий поиск строк. 1012 *
ETA:
как мне получить запись в таблице для строки, содержащей строку 'lucas', любые подсказки?
Используйте td.parent
, чтобы получить содержащую строку, td.parent.parent
, чтобы получить содержащую таблицу / tbody и т. Д.
Если вы хотите получить V
или X
в следующем столбце, вы можете сказать что-то вроде:
tr= soup.find(text= re.compile('lucas')).parent.parent
vorx= tr.findAll('td')[1].find('span').string