[Tutor] CSV file processing...

Spencer Parker inthefridge at gmail.com
Fri Mar 21 21:37:26 CET 2008


Okay...so this is what I have now..

    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 148, in
execute
    query = query % db.literal(args)
TypeError: not enough arguments for format string
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ vim output.txt
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 22, in ?
    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 148, in
execute
    query = query % db.literal(args)
TypeError: not enough arguments for format string
[sjpark at pxe ~]$ vim output.txt
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 22, in ?
    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 148, in
execute
    query = query % db.literal(args)
TypeError: not enough arguments for format string
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 22, in ?
    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 148, in
execute
    query = query % db.literal(args)
TypeError: not enough arguments for format string
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 22, in ?
    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 148, in
execute
    query = query % db.literal(args)
TypeError: not enough arguments for format string
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 22, in ?
    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 148, in
execute
    query = query % db.literal(args)
TypeError: not enough arguments for format string
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 22, in ?
    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 163, in
execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.4/site-packages/MySQLdb/connections.py", line 35,
in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1136, "Column count doesn't match value
count at row 1")
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 22, in ?
    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 163, in
execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.4/site-packages/MySQLdb/connections.py", line 35,
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 ')' at line 1")
[sjpark at pxe ~]$ vim output.txt
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 22, in ?
    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 163, in
execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.4/site-packages/MySQLdb/connections.py", line 35,
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 ')' at line 1")
[sjpark at pxe ~]$ vim output.txt
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 22, in ?
    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 163, in
execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.4/site-packages/MySQLdb/connections.py", line 35,
in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1136, "Column count doesn't match value
count at row 1")
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 22, in ?
    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 148, in
execute
    query = query % db.literal(args)
TypeError: not enough arguments for format string
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
  File "./loadcsv.py", line 30
    co.close()
    ^
SyntaxError: invalid syntax
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 25, in ?
    co.execute('''
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 163, in
execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.4/site-packages/MySQLdb/connections.py", line 35,
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 '' at line 1")
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 25, in ?
    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 163, in
execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.4/site-packages/MySQLdb/connections.py", line 35,
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 '' at line 1")
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 25, in ?
    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 163, in
execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.4/site-packages/MySQLdb/connections.py", line 35,
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 '' at line 1")
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 25, in ?
    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 163, in
execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.4/site-packages/MySQLdb/connections.py", line 35,
in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1136, "Column count doesn't match value
count at row 1")
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 25, in ?
    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 148, in
execute
    query = query % db.literal(args)
TypeError: not enough arguments for format string
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 25, in ?
    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 148, in
execute
    query = query % db.literal(args)
TypeError: not enough arguments for format string
[sjpark at pxe ~]$ python
Python 2.4.3 (#1, Mar 14 2007, 19:01:42)
[GCC 4.1.1 20070105 (Red Hat 4.1.1-52)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 17 +8
25
>>>
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ python
Python 2.4.3 (#1, Mar 14 2007, 19:01:42)
[GCC 4.1.1 20070105 (Red Hat 4.1.1-52)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 25, in ?
    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 163, in
execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.4/site-packages/MySQLdb/connections.py", line 35,
in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1136, "Column count doesn't match value
count at row 1")
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 25, in ?
    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 163, in
execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.4/site-packages/MySQLdb/connections.py", line 35,
in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1136, "Column count doesn't match value
count at row 1")
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 25, in ?
    co.execute("""
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 163, in
execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.4/site-packages/MySQLdb/connections.py", line 35,
in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1136, "Column count doesn't match value
count at row 1")
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 25, in ?
    co.execute('''
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 163, in
execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.4/site-packages/MySQLdb/connections.py", line 35,
in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1136, "Column count doesn't match value
count at row 1")
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 25, in ?
    co.execute('''
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 163, in
execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.4/site-packages/MySQLdb/connections.py", line 35,
in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1136, "Column count doesn't match value
count at row 1")
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 25, in ?
    co.execute('''
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 163, in
execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.4/site-packages/MySQLdb/connections.py", line 35,
in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1136, "Column count doesn't match value
count at row 1")
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ ./loadcsv.py
Traceback (most recent call last):
  File "./loadcsv.py", line 25, in ?
    co.execute('''
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 163, in
execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.4/site-packages/MySQLdb/connections.py", line 35,
in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1136, "Column count doesn't match value
count at row 1")
[sjpark at pxe ~]$ vim loadcsv.py
[sjpark at pxe ~]$ vim loadcsv.py
#!/usr/bin/python

import MySQLdb
import csv
import sys

try:
    db = MySQLdb.connect (host = "localhost",user = "root",passwd =
"Ch33s3Monk3y",db = "xenstats")
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]

co.execute('''
        INSERT INTO stats
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()


Now I get this error:

  File "./loadcsv.py", line 25, in ?
    co.execute('''
  File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 163, in
execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.4/site-packages/MySQLdb/connections.py", line 35,
in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1136, "Column count doesn't match value
count at row 1")

I have a database that has 26 columns in it...MySQL...my data should only be
25.  I have one that auto increments  a unique ID for.


On Fri, Mar 21, 2008 at 1:58 PM, Marc Tompkins <marc.tompkins at gmail.com>
wrote:

> Sorry... no, it still shouldn't work...
> maybe like so:
>
> co.execute('''INSERT INTO stats
> 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''')
>
>
> > You have triple quotes around your SQL.  That means that "implied" line
> > breaks become real.  It won't look as nice, but take the line breaks out and
> > I think it ought to work.
> >
> > Just my $.02...
> >
> > --
> > www.fsrtechnologies.com
>
>
>
>
> --
> www.fsrtechnologies.com




-- 
Spencer Parker
_______________________________________________________

"if you can't go to heaven, may you at least die in Ireland."

_______________________________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20080321/0901c26a/attachment-0001.htm 


More information about the Tutor mailing list