簡體   English   中英

使用xpath和python 3.6從字符串中提取數字

[英]Extracting numbers from a string with xpath and 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]', '')

一個簡單的方法是使用strip() 您可以通過執行以下操作來清理列表:

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

這將為您提供:

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

如果您希望將它們作為實際的int ,則只需使用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變量的類型?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM