Seite 1 von 1

Werte aus Tabelle in Andere Tabelle

Verfasst: Mittwoch 10. September 2008, 07:41
von jarr0d
Hallo,

ich habe folgendes Problem:
ich habe 3 tabellen mit jeweils einer class. in tabelle nr. 1 stehen werte, die sowohl in tabelle nr. 2 und tabelle nr. 3 auftauchen sollen. meine frage ist nun, wie ich die werte aus tabelle nr.1 ind nr. 2 & 3 eintragen kann. mit instanzen habe ich es bereits hinbekommen, dass die tabellenköpfe da sind, aber die werte werden nicht automatisch übernommen.
es scheint für manche wahrscheinlich sehr banal zusein, aber ich bin noch sehr neu in python.
vielen dank!

lg jonny

Verfasst: Mittwoch 10. September 2008, 08:18
von Zap
Hallo jarr0d, und willkommen ;)

Sorry aber erklär (zumindest mir) erstmal was du mit Tabellen meinst.
Und das Beispiel mit den Instanzen wäre vielleicht interessant um besser verstehen zu können was du machen willst.

Verfasst: Mittwoch 10. September 2008, 08:24
von jarr0d
Das ist das komplette script:

Code: Alles auswählen

import tables

class Dimension(tables.IsDescription):
    northing = tables.Float64Col()
    easting = tables.Float64Col()
    height = tables.Float64Col()

class IdDate(tables.IsDescription):
    dimension1 = Dimension()
    time = tables.Int16Col()
    measurement = tables.Float64Col()

tech = tables.openFile("technikum.h5", mode = "w")
root = tech.root

#die einzelnen spalten mit den dazugehörigen werten, die in diese tabelle geschreiben werden:

dimension = tech.createTable(root, "Dimension", Dimension)
row = dimension.row
for x in xrange(10):
    row['northing'] = x
    row['easting'] = 10 * x
    row['height'] = 100 * x
    row.append()
dimension.flush()

#sollen in dieser tabelle mit angezeigt werden:

id_date = tech.createTable(root, "IdDate", IdDate)
row2 = id_date.row
for y in xrange(10):
    row2['time'] = y
    row2['measurement'] = 10 * y
    row2.append()
id_date.flush()

print id_date.cols[:]

tech.close()
Ich hoffe das ganze ist jetzt klarer.

Verfasst: Mittwoch 10. September 2008, 08:32
von BlackJack
Was "Tabellen" sind, ist immer noch nicht klar. Wo kommen `tech` und `tables` her? Wo gibt's Dokumentation dazu?

Verfasst: Mittwoch 10. September 2008, 08:57
von jarr0d
habe den vorherigen eintrag editiert.

Verfasst: Mittwoch 10. September 2008, 09:27
von Leonidas
jarr0d hat geschrieben:habe den vorherigen eintrag editiert.
Es wird aber nicht besser, da ``tables`` ein Modul ist, welches wir nicht haben.

Verfasst: Mittwoch 10. September 2008, 10:03
von jarr0d
das ziel dieses scriptes ist es ein hdf5-file zu erstellen, wenn das hilfreich ist.
ich habe hier vor mir ein buch über python und eins über pytables liegen, daher habe ich die befehle und sturkturen.

Verfasst: Mittwoch 10. September 2008, 10:44
von BlackJack
Das ist in der Tat hilfreich.

Wenn ich Dich richtig verstehe, geht das nicht was Du willst. Du kannst in einer Tabelle keine Referenzen auf Datensätze anderer Tabellen speichern.

So etwas wie Fremdschlüssel und SQLs "JOIN" gibt's auch nicht, weil HDF5 keine relationale Datenbank ist, sondern eine hierarchische.

Verfasst: Donnerstag 11. September 2008, 14:42
von jarr0d
eine möglichkeit wäre doch, dass ich die daten in eine text-datei zwischen speicher und sie dann von dort wiederaufrufe oder?

Verfasst: Donnerstag 11. September 2008, 17:33
von BlackJack
Eine Möglichkeit für *was*? Was ist denn überhaupt das Problem, was Du lösen möchtest?