python - psql TypeError: not all arguments converted during string formatting -


i have trouble when try automatically generate pid

    create table players(       pid serial primary key,       pname varchar(90) not null     ); 

and here function

    def addplayer(name):        conn = connect()        cur = conn.cursor()        cur.execute("insert players(pname) values(%s)",name)        conn.commit() 

and call function with

    addplayer('vera')  

i keep getting error

    cur.execute("insert players(pname) values(%s)",name)     typeerror: not arguments converted during string formatting 

i search hours still confused. can me this? lot!

you need pass tuple or list second parameter execute.

when having more 1 replacement in query tuple looks "normal" this: (name, age).

in case need add tuple 1 part. short bit unusual way write use (name,) second parameter.

thus:

cur.execute("insert players(pname) values(%s)",(name,)) 

although it's more common use ? replacement char this:

cur.execute("insert players(pname) values(?)",(name,)) 

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -