ich bekomme bei folgendem Code
Code: Alles auswählen
def write_to_db(self, host = '', db = '', user = '', passwd = ''):
db = MySQLdb.connect(host="localhost",db="test",user="root")
cursor = db.cursor()
csv_data = self.read_csv(read_first_line = 0)
for i in range(len(csv_data)):
datum = csv_data[i][0].split('.')
cursor.execute('SELECT web_id FROM open_web WHERE date = %s', datum[2]+'-'+datum[1]+'-'+datum[0])
result = cursor.fetchall()
if not result:
cursor.execute('INSERT INTO open_web SET date = %s', datum[2]+'-'+datum[1]+'-'+datum[0])
for j in range(len(csv_data)):
datum = csv_data[j][0].split('.')
cursor.execute('SELECT web_id FROM open_web WHERE date = %s', datum[2]+'-'+datum[1]+'-'+datum[0])
result = cursor.fetchone()
print type(csv_data[j][1])
if result:
cursor.execute("""INSERT INTO open_web_data
SET
web_id = %s,
time = %s,
temp_i = %f;""", (result, csv_data[j][1], float(csv_data[j][2])))
Code: Alles auswählen
Traceback (most recent call last):
File "D:\Daten\Python\Import\Import.py", line 74, in
wi.write_to_db()
File "D:\Daten\Python\Import\Import.py", line 69, in write_to_db
temp_i = %f;""", (result, csv_data[j][1], float(csv_data[j][2])))
File "C:\Programme\Python25\Lib\site-packages\MySQLdb\cursors.py", line 148, in execute
query = query % db.literal(args)
TypeError: float argument required
Ich verstehe einfach nicht was an dem INSERT Befehl falsch sein soll.
Was auch komisch ist, ist das wenn ich die Einträge für time und temp_i aus dem INSERT Befehl raus nehme, also nur die web_id drinne lasse, der Befehl funktioniert.
Über hilfe wäre ich sehr dankbar.
mfg
snatch