Seite 1 von 1
mySQL Tabele Kopfzeiel in CSV mit kopieren
Verfasst: Mittwoch 13. Januar 2010, 13:55
von lubb
Guten Tag
versuche der Inhalt aus einer mySQL Tabelle in CSV zu exportieren, ist auch gut gelungen.
Problem: wie kann ich auch die Header (FelderNamen) mit Kopieren.
Code: Alles auswählen
connection = MySQLdb.connect("localhost", "root", "*****", "****")
cursor = connection.cursor()
cursor.execute("""SELECT * FROM export """)
fd = open('z.csv', 'wb') # CSV file to write to
writer = csv.writer(fd, delimiter=',')
writer.writerow(table.columns.keys()) # header
for row in cursor:
writer.writerow(row)
einversuch war
nun bekomme ich die Fehler Meldung: name table unbekannt
Beste Grüsse
Lubb
Verfasst: Mittwoch 13. Januar 2010, 13:57
von Masaru
Hallo
Die Fehlermeldung ist ja auch richtig. Ich sehe nirgends in Deinem Code, dass du die besagte Variable anlegst.
Verstehst? Wo sollte denn Deiner Meinung nach "table" herkommen?
Achja, für das nächste mal: erstell bitte Posts die einem Unterforum entsprechend besser dort aufgehoben wären, auch dort
Deine Frage ziehlt aber sowas von exakt auf unser
Datenbank Programmierung Bereich ab, dass es Dir schmerzhaft ins Gesicht springen müsste.
>>Masaru<<
Verfasst: Mittwoch 13. Januar 2010, 14:08
von lubb
Das war ein Beispiel, mir ist klar das table nirgendwo definiert ist, das habe ich von einem Beispiel auf dem from Page
http://www.python-forum.de/viewtopic.php?=&p=45313
Verfasst: Mittwoch 13. Januar 2010, 14:10
von Masaru
Hm? Aber in dem Beispiel wird z.B: doch "table" angelegt (s.Zeile 3)?
Wenn Du schon ein Beispiel nachstellst dann solltest Du es auch schon exakt nachstellen.
>>Masaru<<
Verfasst: Mittwoch 13. Januar 2010, 14:33
von lubb
job du hast recht das habe ich übersehen
nun wie kann ich aus bereit vorhandene tabelle die kopfzeiel kopieren.
Verfasst: Mittwoch 13. Januar 2010, 15:06
von Masaru
Am einfachsten, Du verwendest wie jens in seinem Beispiel:
sqlachlemy.
Verfasst: Mittwoch 13. Januar 2010, 15:15
von lubb
bin leider an die MYSQL gebunden und mit sqlalchemy kann ich leider nix anfangen.
hat sqlalchemy auch eine MYSQL Schnittstelle, kann ich auch auf mySQL zugreifen?
Verfasst: Mittwoch 13. Januar 2010, 15:21
von Leonidas
lubb hat geschrieben:hat sqlalchemy auch eine MYSQL Schnittstelle, kann ich auch auf mySQL zugreifen?
Ja.
Verfasst: Mittwoch 13. Januar 2010, 15:24
von lubb
welche lib muss ich importieren damit es läuft
import sqlalchemy ist schon mal falsch
oder ist ein Packet install nötwendig
Verfasst: Mittwoch 13. Januar 2010, 15:27
von noisefloor
Hallo,
du kannst SQAlchemy auf MySQL drauf setzen. Aber es ist nicht das gleiche - MySQL ist eine relationale Datenbank, SQAlchemy ein ORM.
Was meinst du mit "Kopfzeile"? Die Bezeichnungen der Tabellenspalten?
Die bekommst du mit
Gruß, noisefloor
Verfasst: Mittwoch 13. Januar 2010, 15:29
von cofi
lubb hat geschrieben:welche lib muss ich importieren damit es läuft
import sqlalchemy ist schon mal falsch
oder ist ein Packet install nötwendig
Ah da hat jemand editiert
http://www.sqlalchemy.org/
Verfasst: Mittwoch 13. Januar 2010, 15:36
von lubb
das wäre die einfachste Möglichkeit.
nun werde ich die Felder Weglassen und versuchen die CSV anhand der Felder Reihenfolge zu Exportieren und Importien von der eine Tabele zu andere. das geht ohne die Feldernamen zu kennen.
Vielen Dank Leute, ich weis nicht was ich machen sollte ohne eure Beitrage.
Beste Grüsse
Lubb
Verfasst: Mittwoch 13. Januar 2010, 15:46
von Masaru
lubb hat geschrieben:...gibt es kein func die mir aus der DB die reine Feldernamen liefert
Ich fürchte nicht, nein.
Weder die
DBAPI2.0 noch sqlalchemy (ohne separate data object defninitions) bietet solch eine einfache Methode.
>>Masaru<<
Verfasst: Mittwoch 13. Januar 2010, 21:25
von noisefloor
Hallo,
...gibt es kein func die mir aus der DB die reine Feldernamen liefert
Keine direkte. Aber es ist doch ziemlich einfach zu realisieren:
Code: Alles auswählen
import MySQLdb
conn = MySQLdb.connect(host = "localhost", user = "xyz", passwd = "geheim", db = "datenbank")
cursor = conn.cursor()
cursor.execute("SHOW COLUMNS FROM tabellenname")
erg = cursor.fetchall()
for i in erg:
print i[0]
und du hast alle Spaltennamen.
Gruß, noisefloor