Ich benutze Python (2.6) CSV DictReader. Meine Eingabedatei eine Kopfzeile hat, wo die Spaltennamen Leerzeichen am Ende haben:Python wie triming Leerzeichen in CSV DictReader Schlüssel
colname1, colname2 ,col3, etc.
XX, YY, ZZ
Das zurück dict Objekt Taste() = ['colname1', 'colname2 ', 'col3']
Gibt es eine Option, die trimmen und Leerzeichen am Ende von den Tasten?
--edit
Das Problem wird durch Schlüsselnamen in der Verarbeitung entsteht:
with open(fname) as f:
r = csv.DictReader(f)
for row in r:
print "processing", r["column1"], r["column2"]
Die Dateien sind Datenbank-Dumps. Und das Dump-Programm ist viel zu schlau - es passt die Breite der Ausgabespalte abhängig von den Daten an - was bedeutet, dass verschiedene Selektorensätze unterschiedliche Spaltenbreite und unterschiedliche Schlüssellängen haben. Manchmal muss ich r['column2 ']
verwenden und manchmal Felder auffüllen oder reduzieren. Autsch!
Ich wünsche Dies war eine Option in csv.DictReader. (Gibt es einen Ort, um solche Wunschlisten auszudrücken?) – Dinesh
Sie könnten versuchen, die Funktion anzufragen, aber die Chancen stehen gut, dass sie nicht hinzugefügt werden. Um fair zu sein, Ihre CSV ist kaputt;) – Wolph
ja, dass CSV ist * ungewöhnlich * aber es ist ein Datenbank-Dump und jeder Anbieter hat seine Persönlichkeit. Aber ich weiß das Ergebnis nicht zu fragen :) Wo fragt man? – Dinesh