Can't Encode Pic
MRAB
python at mrabarnett.plus.com
Thu Nov 26 14:12:04 EST 2009
Victor Subervi wrote:
> On Thu, Nov 26, 2009 at 1:10 PM, Victor Subervi <victorsubervi at gmail.com
> <mailto:victorsubervi at gmail.com>> wrote:
>
> On Thu, Nov 26, 2009 at 11:52 AM, MRAB <python at mrabarnett.plus.com
> <mailto:python at mrabarnett.plus.com>> wrote:
>
> Victor Subervi wrote:
>
> On Thu, Nov 26, 2009 at 10:03 AM, Carsten Haese
> <carsten.haese at gmail.com <mailto:carsten.haese at gmail.com>
> <mailto:carsten.haese at gmail.com
> <mailto:carsten.haese at gmail.com>>> wrote:
>
> cursor.execute('update products set pic1=%s where ID=1',
> (MySQLdb.Binary(pic1),))
>
> [That comma between the two closing parentheses is not a
> typo. Do not
> leave it out!]
>
>
> A problem occurred in a Python script. Here is the sequence
> of function calls leading up to the error, in the order they
> occurred.
> /var/www/html/angrynates.com/cart/addEdit.py
> <http://angrynates.com/cart/addEdit.py>
> <http://angrynates.com/cart/addEdit.py>
>
> 85 print '<body>\n</html>'
> 86 db.commit()
> 87 cursor.close()
> 88
> 89 addEdit()
> addEdit = <function addEdit>
> /var/www/html/angrynates.com/cart/addEdit.py
> <http://angrynates.com/cart/addEdit.py>
> <http://angrynates.com/cart/addEdit.py> in addEdit()
>
> 66 id = 0
> 67 cursor.execute(sql)
> 68 cursor.execute('update products set pic1=%s where
> ID=1' (MySQLdb.Binary(pics[0]),))
> 69 for col in colNamesPics:
> cursor = <MySQLdb.cursors.Cursor object>, cursor.execute =
> <bound method Cursor.execute of <MySQLdb.cursors.Cursor
> object>>, global MySQLdb = <module 'MySQLdb' from
> '/usr/lib64/python2.4/site-packages/MySQLdb/__init__.pyc'>,
> MySQLdb.Binary = <function Binary>, pics =
> ['\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x02\x01\x00H\x00H\x00\x00\xff\xe1\x13\xd5Exif\x00\x00MM\x00*\x00\x00\x00\x08\x00\x07\x01\x12\x00\x03\x00\x00\x00\x01...\xdb\x9f\x94\xa9\xfds\xc9y\xb1W\xda\xd66\x9azS\x84\xd1\x1f\x93\xa9\xfdG\x0fm\xe3\x84\x01\xc5\x94\xfc\x88\xcf\x06f\xc5_\x7fPS6x\x076*\xff\x00\xff\xd9',
> '', '']
>
> TypeError: 'str' object is not callable
> args = ("'str' object is not callable",)
>
> Please advise.
>
>
> On line 68 you have a string literal immediately followed by a
> tuple, so
> it looks like you're trying to call a string, hence the
> exception. Put a
> comma between the string literal and the tuple.
>
>
> Hang on. Not done yet. The line of code I gave you was just a test case.
> The real ones, and the error they threw, follows:
>
> A problem occurred in a Python script. Here is the sequence of function
> calls leading up to the error, in the order they occurred.
> /var/www/html/angrynates.com/cart/addEdit.py
> <http://angrynates.com/cart/addEdit.py>
> 87 print '<body>\n</html>'
> 88 db.commit()
> 89 cursor.close()
> 90
> 91 addEdit()
> addEdit = <function addEdit>
> /var/www/html/angrynates.com/cart/addEdit.py
> <http://angrynates.com/cart/addEdit.py> in addEdit()
> 71 for pic in pics:
> 72 sql = 'update %s set %s=%s where ID=%s;' % (t,
> colNamesPics[i], '%s', str(id))
> 73 cursor.execute(sql, (MySQLdb.Binary(pics[id]),))
> 74 i += 1
> 75 elif whatDo == 'insert':
> cursor = <MySQLdb.cursors.Cursor object>, cursor.execute = <bound method
> Cursor.execute of <MySQLdb.cursors.Cursor object>>, sql = 'update
> products set pic1=%s where ID=1;', global MySQLdb = <module 'MySQLdb'
> from '/usr/lib64/python2.4/site-packages/MySQLdb/__init__.pyc'>,
> MySQLdb.Binary = <function Binary>, pics =
> ['\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x02\x01\x00H\x00H\x00\x00\xff\xe1\x13\xd5Exif\x00\x00MM\x00*\x00\x00\x00\x08\x00\x07\x01\x12\x00\x03\x00\x00\x00\x01...\xdb\x9f\x94\xa9\xfds\xc9y\xb1W\xda\xd66\x9azS\x84\xd1\x1f\x93\xa9\xfdG\x0fm\xe3\x84\x01\xc5\x94\xfc\x88\xcf\x06f\xc5_\x7fPS6x\x076*\xff\x00\xff\xd9'],
> id = '1'
>
> TypeError: list indices must be integers
> args = ('list indices must be integers',)
>
The traceback explains what the problem is: you're indexing a list, but
the index you're providing isn't an integer.
Remember that an integer is not a string and a string is not an integer.
More information about the Python-list
mailing list