如何在psycopg2中为列值添加引号/撇号?

时间:2015-06-18 13:41:04

标签: python postgresql psycopg2

information = "Hope they're well"     
cursor.execute("UPDATE table_name SET information='%s';" % information)

当添加它时,它显然会产生和错误,因为执行只会尝试添加'Hope they'然后其余的字符串会搞砸它。

显然在php中可以选择编写预处理语句,以便在psycopg2中如何做到这一点?

我读过this但不太了解它以及是否是我想做的事。

1 个答案:

答案 0 :(得分:4)

不要格式化字符串,只需将您的值作为第二个参数传递:

cursor.execute("UPDATE mytable SET col1 = %s, col2 = %s;", [arg1, arg2])

(可选)使用命名参数并传递字典:

cursor.execute("""
    UPDATE mytable
    SET col1 = %(arg1)s, col2 = %(arg2)s
""",{'arg1':arg1, 'arg2':arg2})

psycopg2会处理其他所有事情。

有关详细信息,请参阅here