CSV Datei in Python Struktur einlesen

Gast #5067182
Lesenswert?

Hallo,
Ich habe folgenden CSV Datei

1
raumname;raumid;raumiconstring;deviceid;deviceactualvalueid;devicemaxvalue;deviceminvalues;swipeleftactionstrinq;swiperightactionstring;flyinactionstring;flyoutactionstring;rotateleftactionstring;rotaterightactionstring;deviceiconstring


Und möchte diese in Python in folgende Struktur (Achtung c Syntax 
einlesen:
1
struct raum raeume[]
2

3
struct raum
4

5
{
6
Char raumname[]‚
7
char raumid[],
8
char raumiconstring[]‚
9

10
struct device devices[]
11

12

13
}
14

15
struct device
16

17
( 
18
char deviceid[],
19
char deviceactualvalueid[],
20
double devicemaxvalue,
21
double deviceminvalue,
22
char swipeleftactionstrinq[]‚
23
char swiperightactionstring[]‚
24
char flyinactionstring[],
25
char flyoutactionstring[]‚
26
char rotateleftactionstring[]‚
27
char rotaterightactionstring[]
28
char deviceiconstring []
29
}



Gibt's es jmd der mir helfen könnte, bin leider bei Python relativ 
schlecht.....

Danke
Gast #5067250
Lesenswert?

Ja hatte das nur in c Syntax aufgeschrieben....wie kann ich dann auf die 
einzelnen Elemente zugreifen wenn es mehrere Zeilen gibt?


Und wenn der gleiche raumname öfters Auftritt will ich alle devices 
darunter haben um zugreifen zukönnen bzw.alle devices pro Raum 
aufzulisten.


Zugriff bsp
1
Print Raum[0].raumname 
2

3
For{Raum[0]}
4
List all device
5
End for
(Firma: Père Lachaise) #5067256
Lesenswert?

Nunja, du mußt dir einen Python Datentyp überlegen in welche du die 
Daten packen möchtest. Es gibt u.a.:

- Lists are ordered sequences of values.
- Tuples are ordered, immutable sequences of values. <-- bietet sich 
evtl an
- Sets are unordered bags of values.
- Dictionaries are unordered bags of key-value pairs.

Dazu kannst du durch die Einträge iterieren mit
1
for row in reader:
2
   MachWasMitRow

Zum csv einlesen gibt es mit Sicherheit aus ausführliches Bsp. (ich habe 
nicht danach gesucht)
Gast #5067737
Lesenswert?

csv und struktur passen nicht 1:1 zusammen. entweder packst du etwas 
programmier- und Zuordlogik zwischen csv-lesen und Struktur-schreiben*, 
oder Du packst diese Struktur schon flach in die CSV - halt mit mit 
Redundanzen:
Je csv-Zeile beschreibst du vollständig ein einzelnes Gerät- inkl der 
dazugehörigen Raumdaten.

Egal wie, nun musst du dir einen Kopf machen, welchen Weg du nimmst und 
wie du da langkommst.*

Da wir keine hausaufgaben vorkauen, bleibe ich mal schön ungenau.
#5067837
Lesenswert?

Daten in structs einlesen wird mit Python schwierig, da es keine structs 
gibt. Man kann Klassen dafür verwenden, muss man aber nicht.
Für CSV habe ich gerne den dictreader 
(https://docs.python.org/2/library/csv.html#csv.DictReader) genommen.

Inzwischen nutze ich aber kein CSV mehr sondern lese/schreibe direkt 
xlsx mittels openpyxl. Mit den xlsx können die Kollegen dann doch besser 
umgehen als mit csv.
(Firma: Père Lachaise) #5067972
Lesenswert?

Zugreifen kannst du so:
1
myTuple = ('raumname', 'raumid', 'raumiconstring', 'deviceid');
2

3
print "First: ", myTuple[0]
4
print "Second+Third: ", myTuple[1:2]

Bevor du nun aber jedes Detail deiner Aufgabe hier rauskitzelst, bemüh' 
doch einfach Literatur oder Google um dir ein paar Grundlagen 
anzueignen. Die "Dive into Python"-Reihe fand ich zum Start sehr 
angenehm zu lesen. Wenn du dann wirklich ein Problem hast und nicht 
weiter kommst, poste deinen konkreten Code.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren