mySQL Tabele Kopfzeiel in CSV mit kopieren

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
lubb
User
Beiträge: 50
Registriert: Mittwoch 6. Januar 2010, 17:05

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

Code: Alles auswählen

#writer.writerow(table.columns.keys()) # header
nun bekomme ich die Fehler Meldung: name table unbekannt

Beste Grüsse
Lubb
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

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<<
lubb
User
Beiträge: 50
Registriert: Mittwoch 6. Januar 2010, 17:05

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
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

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<<
lubb
User
Beiträge: 50
Registriert: Mittwoch 6. Januar 2010, 17:05

job du hast recht das habe ich übersehen :shock:

nun wie kann ich aus bereit vorhandene tabelle die kopfzeiel kopieren.
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Am einfachsten, Du verwendest wie jens in seinem Beispiel: sqlachlemy.
lubb
User
Beiträge: 50
Registriert: Mittwoch 6. Januar 2010, 17:05

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?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

lubb hat geschrieben:hat sqlalchemy auch eine MYSQL Schnittstelle, kann ich auch auf mySQL zugreifen?
Ja.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lubb
User
Beiträge: 50
Registriert: Mittwoch 6. Januar 2010, 17:05

welche lib muss ich importieren damit es läuft

import sqlalchemy ist schon mal falsch

oder ist ein Packet install nötwendig
Zuletzt geändert von lubb am Mittwoch 13. Januar 2010, 15:28, insgesamt 1-mal geändert.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

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

Code: Alles auswählen

SHOW COLUMNS FROM tabellenname
Gruß, noisefloor
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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 :twisted:
http://www.sqlalchemy.org/
lubb
User
Beiträge: 50
Registriert: Mittwoch 6. Januar 2010, 17:05

Code: Alles auswählen

SHOW COLUMNS FROM tabellenname
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
Zuletzt geändert von lubb am Mittwoch 13. Januar 2010, 15:56, insgesamt 1-mal geändert.
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

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<<
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

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
Antworten