Werte aus Tabelle in Andere Tabelle

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
jarr0d
User
Beiträge: 8
Registriert: Mittwoch 10. September 2008, 07:35

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
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

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.
jarr0d
User
Beiträge: 8
Registriert: Mittwoch 10. September 2008, 07:35

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.
Zuletzt geändert von jarr0d am Mittwoch 10. September 2008, 08:56, insgesamt 1-mal geändert.
BlackJack

Was "Tabellen" sind, ist immer noch nicht klar. Wo kommen `tech` und `tables` her? Wo gibt's Dokumentation dazu?
jarr0d
User
Beiträge: 8
Registriert: Mittwoch 10. September 2008, 07:35

habe den vorherigen eintrag editiert.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

jarr0d hat geschrieben:habe den vorherigen eintrag editiert.
Es wird aber nicht besser, da ``tables`` ein Modul ist, welches wir nicht haben.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
jarr0d
User
Beiträge: 8
Registriert: Mittwoch 10. September 2008, 07:35

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.
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.
jarr0d
User
Beiträge: 8
Registriert: Mittwoch 10. September 2008, 07:35

eine möglichkeit wäre doch, dass ich die daten in eine text-datei zwischen speicher und sie dann von dort wiederaufrufe oder?
BlackJack

Eine Möglichkeit für *was*? Was ist denn überhaupt das Problem, was Du lösen möchtest?
Antworten