Seite 1 von 1

Daten aus PostgreSQl datenbank exportieren (Syntax fragen)

Verfasst: Samstag 11. August 2007, 16:12
von BoOnOdY
Hy,

also ich möchte aus meiner PosgreSQL-Datenbank via psycopg2 in einem kleinen Script Daten exportieren.

Ich bekomme Abertausende Spalten ausgespuckt, wies auch richtig ist. Wie erkläre ich der Abfrage, dass sie eine Zeile nach der anderen durchmacht und die in Variablen schreibt? Reicht es wenn ich eine Schleife baue, in die einen Zähler einbaue und dann auf die Zeile der Datenbank verweise. Wenn ja wie geht das?
(Ein gutes Tutorial wie ich Datenbanken zeile für Zeile auslese und in Variablen stecke würde mir schon reichen)


Vorgang soll folgender werden:

alte Endddatei löschen.

Textdatei auslesen und komplett in andere Endtextdatei schreiben

1. abfrage. SQLZeile Lesen --> Nach bestimmten If-Abfragen in einer bestimmten reihenfolge zusammenschmeißen --> Daten in Endtexdatei hinzufügen.

2. abfrage. SQLZeile Lesen --> Nach bestimmten If-Abfragen in einer bestimmten reihenfolge zusammenschmeißen --> Daten in Endtexdatei hinzufügen.




Ich weiß, es ist wieder einmal eine dumme Frage, aber ich brauche einfach mal nen Ansatz um rein zu kommen.

Zeilenumbrüche und Tab und so das ganze ausführliche Programm in Form von Quelltext der vielleicht bei euch einen ganz anderen Zweck erfüllt mir aber trozdem helfen kann, oder richtig guten Tutorials die nicht dann aufhören, wenn man zu den Bereichen kommt die ich brauche, so wie die Meisten.

Danke schon im Vorraus und schönes Wochende.

Gruß BoOnOdY

Verfasst: Samstag 11. August 2007, 17:43
von BlackJack
Den zweiten Punkt habe ich nicht ganz verstanden.

Ansonsten ist das iterieren über Ergebnisse von SQL-Abfragen kein Problem. Der Cursor über den die Abfrage gemacht wurde ist "iterable". Wenn beide Abfragen die gleiche Anzahl von Ergebniszeilen haben, kann man mit `izip()` auch in einer einzigen Schleife über beide gehen. Die Ergebniszeilen werden als Tupel geliefert.

Re: Daten aus PostgreSQl datenbank exportieren (Syntax frage

Verfasst: Samstag 11. August 2007, 17:47
von gerold
BoOnOdY hat geschrieben:(Ein gutes Tutorial wie ich Datenbanken zeile für Zeile auslese und in Variablen stecke würde mir schon reichen)
Hallo BoOnOdY!

Vielleicht kannst du damit schon mal etwas anfangen:
http://www.python-forum.de/post-74731.html

mfg
Gerold
:-)

Verfasst: Samstag 11. August 2007, 23:26
von BoOnOdY
hey das hat mir schon sehr viel geholfen =) jetzt habe ich nur noch eine Frage:

Wie kann ich eine Liste genau so wie den Cursor verwenden? Ich will einfach alles in der Reihenfolge wie es die Datenbank da zeile für Zeile reinschmeißen und genau so rausbekommen.

Weil ich will nur 1ne Abfrage machen aber sie 2 mal benutzen in einem Script, wegen der Zeiterspaarnis. Also in 2 Schleifen.

Außerdem möchte ich gerne Elemente in einer String hinzufügen.
quasi:

Namen=Hans
Namen add Wolfgang
print name
HansWolfgang

Gruß BoOnOdY

Verfasst: Sonntag 12. August 2007, 09:35
von BlackJack
Was meinst Du mit Liste genauso wie einen Cursor verwenden? Wenn Du das Ergebnis auf einmal in eine Liste einlesen willst, kannst Du die `fetchall()`-Methode vom Cursor verwenden.

Alternativ könntest Du auch versuchen die beiden Schleifen zu einer zusammen zu fassen, dann spart man eventuell Speicher weil das Ergebnis der SQL-Anfrage nicht komplett im Speicher gehalten werden muss.

Die Frage zu den Zeichenketten habe ich nicht verstanden. Oder so wie ich sie verstanden habe, ist das so trivial, dass Du vielleicht nochmal das Tutorial durcharbeiten solltest.

Verfasst: Sonntag 12. August 2007, 10:15
von BoOnOdY
Sie war so trivial ^^
Aber ich muss es eh in 2 Schritten machen habe ich gesehen, weil ich 2 unterschiedliche Sortierungen benötige, von daher ist alles okay so wie es im Mom ist=

Vielen Dank mein Problem ist gelöst.

Gruß BoOnOdY