要通过psycopg2创建用户,我使用以下代码:
cur=conn.cursor()
cur.execute("create user %s with password %s",('abcdefgh','0h/9warrAttrgd8EF0gkvQ==',))
这会产生以下错误:
syntax error at or near "'abcdefgh'" LINE 1: create user 'abcdefgh' with password '0h/9warrAttrgd8EF0gkvQ.
似乎%s在用户名周围加了引号,postgres在创建用户时不喜欢这样。以下代码工作正常:
cur.execute("create user abcdefgh with password %s",('0h/9warrAttrgd8EF0gkvQ==',))
有办法解决这个问题吗?
最佳答案
使用psycopg2.extensions.AsIs(object):
from psycopg2.extensions import AsIs
cur.execute("create user %s with password %s", (AsIs('abcdefgh'), '0h/9warrAttrgd8EF0gkvQ==',))