Извлечение чисел из строки с помощью xpath и python 3.6

Я не мог применить решение к подобным вопросам, которые я нашел здесь. После использования этого в визуальном коде, чтобы очистить веб-страницу с Python и LXML

[...]
tree = html.fromstring(browser.page_source)
data = tree.xpath('//tr[@title="something"]/td[2]/text()')

если я напечатаю (данные), я получу этот список. Являются ли данные списком?

['\n                    1.27\n                ', '\n                    1.81\n                ', '\n                    4.90\n                ', '\n
       2.07\n                ', '\n                    2.12\n                ']

Моя цель - извлечь только число из каждой строки. Я читал о функции регулярного выражения, не уверен, что это решение

replace($MyString, '[^0-9]', '')

2 ответа

Простой метод будет использовать strip(), Вы можете очистить список, выполнив что-то вроде:

clean_data = [d.strip() for d in data]

который даст вам:

['1.27', '1.81', '4.90', '2.07', '2.12']

если вы хотите, чтобы это было актуально ints, просто используйте int(d.strip()) вместо

Представим, что ваш вывод хранится в переменной x:

>>> print("\n".join([y.strip() for y in x]))
1.27
1.81
4.90
2.07
2.12

Это поможет? Или вам нужен список, в этом случае:

>>> print([y.strip() for y in x])
['1.27', '1.81', '4.90', '2.07', '2.12']

[ОБНОВИТЬ]

Для

Являются ли данные списком?

Как определить тип переменной Python?

Другие вопросы по тегам