2016-05-25 15 views
0

Ich wiederhole jede Zeile in einer CSV-Datei und wähle/berechne nur Zeilen, die die Bedingung erfüllen. Wenn jedoch in einer Zeile ein Fehler auftritt, wird die Schleife angehalten. Gibt es eine Möglichkeit, Python zu sagen, den Fehler zu überspringen und zur nächsten Zeile zu wechseln? Ich benutze die try Funktion, hat aber nicht funktioniert. mein CodeÜberspringen einer Fehlerzeile in einer for-Schleife

try(row['BAS'] = float(row['Close Ask']) - float(row['Close Bid'])) 

der Fehler eines der Zelle ist ein String ist und nicht in einem Schwimmer umgerechnet werden können

+0

[ 'CONTINUE] (https://docs.python.org/2/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops)? – ozgur

+2

'try' ist keine Funktion – donkopotamus

Antwort

1

Sie wollen so etwas wie:

for row in csv_file: 
    try: 
     x = float(row['Close Ask']) - float(row['Close Bid']) 
    except ValueError: 
     continue 
    else: 
     # now keep going doing something with x 
     ... 
+0

ja, es funktioniert. Vielen Dank @donkopotamus – duckman

0

Sie den Fehler durch den Fang Fehler dieser Art (ValueError) und effektiv sie ignorieren kann ignorieren:

try: 
    row['BAS'] = float(row['Close Ask']) - float(row['Close Bid']) 
except ValueError: 
    pass 
0

sollten Sie Ihren Code in einem Try-Put/außer:

try: 
    code 
except: 
    pass 

(Sie nicht so breite Ausnahme abfangen verwenden sollte, aber ich weiß nicht, den Fehler, wird auftreten.)

Verwandte Themen