AttributeError: 'tuple' object has no attribute 'encode'

Paul Boddie paul at boddie.org.uk
Thu Apr 5 12:37:44 EDT 2007


erikcw wrote:
>
> I'm trying to build a SQL string
>
> sql = """INSERT INTO ag ('cid', 'ag', 'test') VALUES(%i, %s, %d)""",
> (cid, ag, self.data[parent][child]['results']['test'])

This makes a tuple, though: the first element is the SQL string; the
second element contains a tuple of parameters.

> It raises this error: AttributeError: 'tuple' object has no attribute
> 'encode'

What does? I imagine that this error comes from a call to a cursor
object's execute method. In other words, I imagine that you may be
doing something like this:

cursor.execute(*sql)

Not that there would be anything obviously wrong with that: you are
keeping the string and its parameters separate, after all. However,
you'd have to show us the full error (a traceback including lines of
code from the database library) for us to really see what's going on.

> Some of the variables are unicode (test and ag) - is that what is
> causing this error?  What do I need to do to make it work?

Show us more of the error! ;-)

Paul




More information about the Python-list mailing list