I have code like this:
print \"company_id = %d\" % company_id
...
db.cursor.execute(\"insert into person (company_id, first, last, type) values (%d, \'%s\',
From the Psycopg FAQ:
Q: I can’t pass an integer or a float parameter to my query: it says a number is required, but it is a number!
A: In your query string, you always have to use %s placeholders, even when passing a number. All Python objects are converted by Psycopg in their SQL representation, so they get passed to the query as strings. See Passing parameters to SQL queries.
Replace the %d
with %s
.