Seite 1 von 1

csv.DictReader - Problem

Verfasst: Donnerstag 13. Oktober 2011, 08:40
von mburghart
Hallo erst einmal zusammen,

ich bin neu hier im Forum und habe erst vor kurzem mit Python angefangen. Ich habe schon PHP, JavaScript, Java und C++ programmiert. Aber Python hat mir von der ersten Sekunde gefallen.

Nun zum Problem:

Ich soll eine CSV-Datei (Tabelle) einlesen und habe bereits die beiden Möglichkeiten csv.reader und csv.DictReader ausprobiert. Leider ist der DictReader sehr schlecht in der Referenz erklärt und ich kenne mich nicht mehr aus obwohl ich denke, dass es der richtige Weg für mein Problem ist.

Ich möchte, nachdem ich die CSV eingelesen habe auf einzelne Tabellenwerte zugreifen. Also z. B. von Spalte 3 die dritte Zelle. Das geht aber nicht. In den gängigen Tutorials und Erklärungen wird die CSV nur immer eingelesen und dann sofort per

Code: Alles auswählen

for row in reader:
         ...     print row
ausgegeben. Ich will aber nicht immer alles ausgeben sondern brauche die Einzelwerte. Wie greife ich darauf zu?

Vielen Dank und Gruß
Michael

Re: csv.DictReader - Problem

Verfasst: Donnerstag 13. Oktober 2011, 09:05
von gkuhl
Hallo und Willkommen im Forum,

schön das dir Python gefällt. Die Verwendung von "Ich soll..." deutet irgendwie auf Hausaufgabe hin. Daher halte ich mich mit Code mal etwas zurück. ;)

Wenn du die Funktion "csv.reader" verwendest, wird ein Iterator zurückgegeben, mit dem du über die einzelnen Zeilen iterieren kannst. Jede Zeile wird als List zurückgegeben. Sollte deine Tabelle nicht zu groß sein, kannst du den Iterator mit "list(itertator)" in eine verschachtelte Liste umwandeln. Auf die dritte Spalte, dritte Zeile kannst du dann mit Hilfe von Indices zugreifen. Wie bei C++ hat das erste Element den Index "0".

Grüße
Gerrit

Re: csv.DictReader - Problem

Verfasst: Donnerstag 13. Oktober 2011, 09:13
von /me
mburghart hat geschrieben:Ich soll eine CSV-Datei (Tabelle) einlesen und habe bereits die beiden Möglichkeiten csv.reader und csv.DictReader ausprobiert. Leider ist der DictReader sehr schlecht in der Referenz erklärt und ich kenne mich nicht mehr aus obwohl ich denke, dass es der richtige Weg für mein Problem ist.

Ich möchte, nachdem ich die CSV eingelesen habe auf einzelne Tabellenwerte zugreifen. Also z. B. von Spalte 3 die dritte Zelle. Das geht aber nicht.
Wenn du den DictReader verwendest, dann bekommst du als Einzelergebnis ein Dictionary zurück auf das du dann über den Namen der Spalte zugreifst. Die Zuordnung zur Nummer der Spalte ist dabei aufgehoben.

Re: csv.DictReader - Problem

Verfasst: Donnerstag 13. Oktober 2011, 10:48
von mburghart
Vielen Dank für die Antworten.
In der Zwischenzeit, hatte ich es auch selbst herausgefunden.

Gruß
Michael