2017-09-02 14 views
-2

我目前正在刮其中數字是被張貼在不同的數字格式在互聯網上的一些表:Python數據抓取的差異化 - 數以百萬計的人與

Animal - Left in Wild 
Tigers - 18 
Deer - 18m 
Pigs - 180000 

我已經成功地從剝米處號碼,但我想知道是否/如何我可以,如果語句中使用,以允許一些操作,以確保我記錄準確數目:

if animal.strip("m") == animal.strip("m"): 
    left_in_wild = left_in_wild * 1000000 

顯然代碼不工作,但它是一個粗略的想法我是怎麼想ge的圍繞這一點。如果任何人都可以擁有他們認爲可以幫助的事情,請告訴我。

謝謝!

回答

1

一個簡單的if語句可以與你在找什麼幫助:

animal = "18m" 

if 'm' in animal: 
    print animal.strip('m') + ",000,000" 

if 'k' in animal: 
    print animal.strip('k') + ",000" 

回報:

18,000,000 
0

喜歡的東西:

import re 

def get_number(s): 
    try: 
     i=int(re.match('(\d+)', s).group(1)) 
     if "m" in s: 
      i*=1000000 
     return i 
    except: 
     print "No Number" 

get_numbers("18m")回報18000000

你甚至可以展開它有一個elif "k" in s塊,如果你有成千上萬的什麼的。

+1

如果你要編譯當場表達,使用're.match ('(\ d +)',s).group(1)'代替。如果您想使用預編譯版本,請將其放在函數外部,或者將其設置爲默認參數。 –

+0

良好的通話。更新。謝謝! –