2016-08-04 9 views
0

Ich versuche, mein erstes Python-Skript zu schreiben, das ausdruckt, welche Clients nach AP suchen und welche APs sie ausführen. Also mein Problem kommt, wenn ein Client (na ja, noch kein Client) nach mehr als einem AP sucht.Zusätzliche Felder auf CSV

import csv 
import sys 

if len(sys.argv) != 2: 
    print("usage: ./scriptpy.py csvfile") 
    pass 
else: 
    with open(sys.argv[1], 'rb') as csvfile: 
     lector = csv.DictReader(csvfile, restkey='extra') 
     for row in lector: 
      print(row['Station MAC'] + " probes for " + row[' Probed ESSIDs'] + row['extra']) 
      pass 

dies wirft eine KeyError in Reihe [Extras]

Vielen Dank im Voraus.

+0

Normalerweise csv-Dateien sind Textdateien. Sind Sie sicher, dass diese Datei eine Bytes-Datei ist, um sie mit 'rb' zu öffnen? – chapelo

+0

Wofür steht "AP"? – martineau

+0

Ich benutzte rb, weil das die Art und Weise ist, in der Python-Referenz von csv tut. Access Point – enigma21

Antwort

1

Eine Möglichkeit, mit den wichtigsten Fehler zu behandeln ist .get('my_key', 'alternate_value'), wie folgt aus:

row.get('extra', '') # rather than row['extra'] 
+0

Danke! Es klappt – enigma21