ValueError usó el formato de carácter 'd' con psycopg2

Tengo un código como este:

print "company_id = %d" % company_id
...
db.cursor.execute("insert into person (company_id, first, last, type) values (%d, '%s', '%s', %d);", (company_id, name[0], name[1], type))

Me sale el siguiente resultado:

company_id = 1
Traceback (most recent call last):
...
  File "./GetPeople.py", line 125, in insertPerson
    db.cursor.execute("insert into person (company_id, first, last, type) values (%d, '%s', '%s', %d);",     

¿Por qué puede imprimir la primera línea pero da un error para eldb.cursor.execute() ¿llamada?

Respuestas a la pregunta(2)

Su respuesta a la pregunta