I am at a loss as to why this isn't working properly:

#!/usr/bin/python

import MySQLdb
import csv
import sys

try:
    db = MySQLdb.connect (host = "localhost",user = "root",passwd =
"########",db = "stats")
except MySQLdb.Error, e:
    print "Error %d: %s" % (e.args[0], e.args[1])
    sys.exit (1)

co = db.cursor()
csv_data = csv.reader(file('output.txt','r'))
headers = csv_data.next()
row = csv_data.next()
prefix = row[:17]
for i in range(17, len(row),8):
    next = prefix + row[i:i+8]
    print next
co.execute("""
    INSERT INTO stats(Hostname, Time, Arch, PhysicalCPU, Count, Running,
Blocked, Paused, Shutdown, Shutoff, Crashed, Active, Inactive, PCPU,
TotalMemory, Totalguestmemory, TotalCPUtime, DomainID, Domainname, CPUTime,
PGCPU, RDRQ, WRRQ, RXBY, TXBY)

VALUES("%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s");
    """, row)
co.close()
db.commit()
db.close()

It pulls all of the data correctly and it is the correct of items that it is
grabbing.  I get this traceback:

Traceback (most recent call last):
  File "./loadcsv.py", line 21, in ?
    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 148, in
execute
    query = query % db.literal(args)
TypeError: not all arguments converted during string formatting

If I have it print out the next variable...the data is correct that it is
pulling out...

['test.test.net', '15:33:59', 'x86_64', '8', '9', '1', '4', '0', '0', '0',
'0', '5', '4', '0.0', '12495360', '818688', '0', '1', 'beta', '0.', '0.',
'', '', '', '']

Maybe fresh eyes could pull out my mistake?

Thanks again for everything!
_______________________________________________
Tutor maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/tutor

Reply via email to