W moim przypadku, ja tylko dbał o odpędzenie spacje z nazwami pól (aka nagłówków kolumn, vel słownika klucze), przy zastosowaniu csv.DictReader
.
Utwórz klasę opartą na csv.DictReader
i przesłonię właściwość fieldnames
, aby usunąć białe znaki z każdej nazwy pola (zwanego również nagłówkiem kolumny, czyli słownikiem).
Wykonaj tę czynność, pobierając zwykłą listę nazw pól, a następnie powtarzając ją, tworząc nową listę z białymi znakami usuniętymi z nazwy każdego pola, a następnie ustawiając podstawowy atrybut _fieldnames
na tę nową listę.
import csv
class DictReaderStrip(csv.DictReader):
@property
def fieldnames(self):
if self._fieldnames is None:
# Initialize self._fieldnames
# Note: DictReader is an old-style class, so can't use super()
csv.DictReader.fieldnames.fget(self)
if self._fieldnames is not None:
self._fieldnames = [name.strip() for name in self._fieldnames]
return self._fieldnames
To najlepsze możliwe rozwiązanie przy użyciu modułu 'csv'. Klasa 'Reader' zwrócona przez funkcję' csv.reader() 'nie jest widoczna w module' csv' lub '_csv', aby umożliwić nadpisanie jej metody' next() '. – CivFan