Pojedyncze cudzysłowy wokół symboli zastępczych %s są nieprawidłowe, a %d nie jest używany zgodnie z dokumentacją . Zmień
db.cursor.execute("insert into person (company_id, first, last, type) values (%d, '%s', '%s', %d);", (company_id, name[0], name[1], type))
do
db.cursor.execute("insert into person (company_id, first, last, type) values (%s, %s, %s, %s);", (company_id, name[0], name[1], type))