Schreiben query-Zeilen im csv-python
Ich bin wrinting ein Skript zu schreiben, Abfrage-Ergebnisse, die Zeilen in einer csv-Datei. Die Daten werden E-Mail-Adressen, wie folgt :
Nun ist mein code schreibt, meine Ergebnisse in der csv-Datei wie folgt :
('[email protected]'), ('[email protected]'), ('[email protected]'),
Wie kann ich die nächsten Zeilen statt der Zeilen ?
EDIT : Es scheint, dass meine Abfrage gibt mir die Daten zwischen den Klammern, zum Beispiel ('[email protected]'),
Hier ist der code :
import pymysql
import csv
db = pymysql.connect(host="localhost", port=3306, user="foo", passwd="bar", db="db")
cursor = db.cursor()
query3 = """SELECT email FROM tmp"""
cursor.execute(query)
data = cursor.fetchall()
list = []
for row in data :
value = str(row)
list.append(value)
file = open('file.csv', 'wb')
data = csv.writer(file)
data.writerow(list)
cursor.close()
db.close()
file.close()
Du musst angemeldet sein, um einen Kommentar abzugeben.
Folgenden sieht aus wie es würde dein problem lösen:
Für eine genauere/passende Lösung, Sie müssen uns mehr details, z.B. was macht Ihr Eingabeformat Aussehen, und was wollen Sie Ihre Ausgabe-Datei zu schauen, wie (tatsächlichen Daten, nicht Abstrakt", a, b, c").
Als eine Randnotiz, rufen Sie nicht Ihre Variablen
list
oderfile
. Diese Namen Schatten der built-in-Liste/Datei-Typen.EDIT: Wenn alles, was Sie tun, ist das schreiben einer e-mail-Adresse pro Zeile ein, du bist nicht wirklich tun, CSV, noch müssen Sie das Modul. Hier ist, was ich tun würde:
Module wie pymysql entsprechen der Python-DB-API. Der cursor ist
fetchall()
Methode gibt eine Liste von Tupeln. Jedes Tupel repräsentiert eine einzelne Zeile aus der Datenbank Abfrage. Die Umwandlung dieser in eine Zeichenfolge wahrscheinlich nicht geben Ihnen, was Sie wollen:Den
writerow
Methode erwartet eine Sequenz und jedes element der Sequenz, ausgegeben als ein Wert in der Zeile mit der entsprechenden Darstellung und Separatoren je nach format gewählt.Du die aktuelle logic-loops über alle Zeilen zurückgegeben, die von Ihrem DB-Abfrage.Jedes mal um die Schleife, fügt es eine andere (vermutlich falsche) Wert in eine Liste, öffnet eine Datei zum schreiben, und schreibt die aktuelle Liste. Da jede iteration erzeugt eine neue Datei, die Sie sehen nur das, was in der letzten iteration.
Hier ist code, der möglicherweise das tun, was Sie wollen.