[EMAIL PROTECTED] > getting an unsubscriptable object error on an if else statement
> db = MSSQL.connect(server,login,pwd,database) > c = db.cursor() > c.execute(mySQL) > rows = c.fetchone() > #determine recipient > if str(rows[3]) == str(rows[4]): > recipient = str(rows[0]) + " " + str(rows[1]) > else: > recipient = "test" > the above code works fine if rows[3] == rows[4]. it's when it doesn't equal > that it gives the error:: > TypeError: unsubscriptable object > args = ('unsubscriptable object',) Hi, Matthew. Couple of points first: if it's possible, try to send emails in plain-text only, no HTML or Rich-Text. Makes life easier in some viewers. (And this list is gatewayed to news:comp.lang.python and to Google Groups). Also, try to screen dump the *actual* traceback, not your copy of it. Your example is self-contained so I imagine it can easily be run at the interpreter. (Which may be what you're doing). Finally, I suspect that your (slightly ill-named) "rows" is getting a None back from c.fetchone (). Consider the following example: <code> import MSSQL # substitute your own connection info db = MSSQL.connect ("VODEV1", "", "", "EVODEV") c = db.cursor () c.execute ("SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE 1 = 2") # guaranteed no rows rows = c.fetchone () print rows # will display 'None' print rows[3], rows[4] # will display unsubscriptable object </code> I realise that you say "the above code works find if rows[3] == rows[4]" but how do you know? If I've got the wrong end of the stick, can you publish a working snippet which can reproduce the error? TJG ________________________________________________________________________ This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk ________________________________________________________________________ -- http://mail.python.org/mailman/listinfo/python-list