Another MySQL Problem

Victor Subervi victorsubervi at gmail.com
Wed Jun 23 11:16:37 EDT 2010


On Wed, Jun 23, 2010 at 10:25 AM, Stephen Hansen
<me+list/python at ixokai.io>wrote:

> On 6/23/10 6:45 AM, Victor Subervi wrote:
> > Hi;
> > I have this line:
> >
> >   cursor.execute('select clientEmail from clients where client=%s',
> > (string.replace(client, '_', ' ')))
> >   clientEmail = cursor.fetchone()[0]
> >   cursor.execute('select * from %s' % (client))
> >
> > client = "Lincoln_Properties"
> > With the replacement, the interpreter complains that mydatabase.Lincoln
> > doesn't exist. Therefore, the first line of code isn't putting the %s
> > replacement in quotes, as I was told by you all it would. So I add
> > quotes to it and the interpreter complains on the second line of code
> > that it's unsubscriptable (because it's None). What gives?
>
> Its very early, so excuse me if I fall asleep in the middle of the
> response.
>
> First: Don't do 'string.replace(your_string, x, y)' -- that's back in
> the very, very old days before strings themselves had all the nice methods.
>
> Do, 'client.replace("_", " ")' instead.
>
> Second, you're forgetting a cardinal rule. Always, always, always,
> include the actual tracebacks when reporting errors. Don't summarize them.
>
> Third, I *think* the problem is-- though I may be wrong here, because
> again, just woke up-- that you're not passing the options as a tuple.
>
> Consider: ("hello") is not a tuple with one item. This is a slight
> 'wart' with Python syntax. Parens do not make tuples: *commas* do.
> Therefore, every tuple *must* have a comma. To make a one-item tuple,
> you must do ("hello", )
>

Well making the changes you suggest throws this error:

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/globalsolutionsgroup.vi/mailSpreadsheet.py
   67 </body>
   68 </html>'''
   69
   70 mailSpreadsheet()
   71
mailSpreadsheet = <function mailSpreadsheet>
 /var/www/html/globalsolutionsgroup.vi/mailSpreadsheet.py in
mailSpreadsheet()
   34   subject = 'Order From Client'
   35   cursor.execute('select clientEmail from clients where client="%s"',
(client.replace('_', ' '),))
   36   clientEmail = cursor.fetchone()[0]
   37   cursor.execute('select * from %s', (client,))
   38   data = cursor.fetchall()
clientEmail = 'jpage at lpc.com', cursor = <MySQLdb.cursors.Cursor object>,
cursor.fetchone = <bound method Cursor.fetchone of <MySQLdb.cursors.Cursor
object>>

TypeError: unsubscriptable object
      args = ('unsubscriptable object',)

Please advise.
TIA,
beno
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20100623/7601adaa/attachment-0001.html>


More information about the Python-list mailing list