2017-09-02 2 views
-2

Ich bin derzeit einige Tabellen im Internet Schaben, wo Zahlen in verschiedenen numerischen Formaten veröffentlicht werden:Python Daten-Scraping Differenzierung - Millionen gegen diejenigen

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

Ich habe es geschafft, aus der die m entfernt abzustreifen Zahl, aber ich frage mich, ob/wie ich sicherstellen, einige Manipulation verwenden könnte ein if-Anweisung, damit ich die Nummer genau dokumentieren:

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

Offensichtlich, dass Code funktioniert nicht, aber es ist ein grober Gedanke von wie ich über ge denke tting um diese. Wenn jemand etwas hat, von dem er denkt, dass es hilfreich sein kann, lass es mich wissen.

Vielen Dank!

Antwort

1

Eine einfache IF-Anweisung mit helfen könnte, was Sie suchen:

animal = "18m" 

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

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

kehrt:

18,000,000 
0

Etwas wie:

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") kehrt 18000000

Sie es sogar erweitern könnte einen elif "k" in s Block haben, wenn Sie Tausende oder etwas hatte.

+1

Wenn Sie den Ausdruck an Ort und Stelle kompilieren wollen, verwenden Sie 're.match ('(\ d +)', s) .group (1) 'stattdessen. Wenn Sie die vorkompilierte Version verwenden möchten, stellen Sie sie außerhalb Ihrer Funktion oder als Standardparameter ein. –

+0

Guter Anruf. Aktualisiert. Vielen Dank! –

Verwandte Themen