Ich habe den gleichen Code in ubuntu verwendet und es hat gut funktioniert, aber wenn ich versuchte, es in Windows auszuführen gab es mir eine "()" Ausgabe.Was kann der Grund sein .Ich bin neu in diesem Bereich iDaten werden nicht eingefügt in mysql von python
import csv
import string
import MySQLdb
with open('cool1.txt','r') as csvfile:
scoreFileReader=csv.reader(csvfile)
scoreList=[]
for row in scoreFileReader:
if len(row) !=0:
scoreList=scoreList + [row]
csvfile.close()
print(scoreList)
temp=str(scoreList).translate(string.maketrans('', ''), '[]\'')
#print(temp)
db = MySQLdb.connect("localhost","root","","test123")
#setup cursor
cursor = db.cursor()
#create anooog1 table
cursor.execute("DROP TABLE IF EXISTS db1234")
sql = """CREATE TABLE db1234 (
uid VARCHAR(100) NOT NULL,
price INT(100) NOT NULL)"""
cursor.execute(sql)
try:
cursor.execute("""INSERT INTO db1234 VALUES (%s,%s)""",(scoreList))
db.commit()
except:
db.rollback()
#how table
cursor.execute("""SELECT * FROM db1234;""")
print cursor.fetchall()
db.close()
und der Textdatei Daten sieht aus wie diese assistance.` brauchen:
E0 C1 7F 7A
0
nach dem außer dem Fehler Entfernen kam wie diese
[['E0 C1 7F 7A'], ['0']]
Traceback (most recent call last):
File "csvfile_writer2.py", line 31, in <module>
cursor.execute("""INSERT INTO db1234 VALUES (%s,%s)""",(scoreList))
File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 174, in execute
self.errorhandler(self, exc, value)
File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
_mysql_exceptions.ProgrammingError: (1064, 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'),("\'0\'",))\' at line 1')
vor mit der Ausnahme-Klausel es kam
C:\Users\supar\Desktop>python csvfile_writer2.py
[['E0 C1 7F 7A'], ['0']]
()
C:\Users\supar\Desktop>
Sie keine leere 'außer verwenden:' Klausel. Möglicherweise erhalten Sie einen Fehler, der verhindert, dass die Daten eingefügt werden. – bernie
die Ausgabe kam wie folgt – Fiore
Sie haben zwei Platzhalter und ein Element bei jeder Iteration einfügen. Das wird nicht funktionieren. – bernie