如何使用变量插入从python到PostgreSQL的表中

如何使用变量插入从python到PostgreSQL的表中,python,postgresql,psycopg2,Python,Postgresql,Psycopg2,我对python和SQL都是新手。 我最终想做的是,用户键入一个值,插入到PostgreSQL中的表中。 我试过几种我能找到的方法 但我一直未能成功插入。 这就是我现在拥有的: import psycopg2 from config import config def create_tables(a): """ create tables in the PostgreSQL database""" commands = ( """ SET

我对python和SQL都是新手。 我最终想做的是,用户键入一个值,插入到PostgreSQL中的表中。 我试过几种我能找到的方法

但我一直未能成功插入。 这就是我现在拥有的:

import psycopg2
from config import config

def create_tables(a):
    """ create tables in the PostgreSQL database"""
    commands = (
        """
        SET num 10,
        INSERT INTO Hotel_A (date, Suite, StandardKing) VALUES ('2017-09-12', num, 3)
        """,
        """
        INSERT INTO Hotel_A (date, Suite, StandardKing) VALUES ('2017-09-29', 5, 3)
        """,
        """
        INSERT INTO Hotel_A (date, Suite, StandardKing) VALUES ('2017-09-23', 5, 3)
        """
        )

    conn = None

    try:
        # read the connection parameters
        params = config()
        # connect to the PostgreSQL server
        conn = psycopg2.connect(**params)
        cur = conn.cursor()

        # create table one by one
        for command in commands:
            cur.execute(command)

        # close communication with the PostgreSQL database server
        cur.close()
        # commit the changes
        conn.commit()

    except (Exception, psycopg2.DatabaseError) as error:
        print(error)

    finally:
        if conn is not None:
            conn.close()

HotelASuite = 10

if __name__ == '__main__':
    create_tables(HotelASuite)
我想做num=hotelsuite,这是我的目标

非常感谢你的帮助!。 我正在使用Python 2.7和PostgreSQL 9.6

 var1 = "x"
 var2 = datetime.datetime.now()
 curs.execute("INSERT INTO sometable (col1, col2) VALUES (%s, %s)", (var1,var2))

参见

请解释您的问题,在问题中包含代码,而不是链接。换言之,产生一个新的结果。例如,看一看如何使用占位符。最后,永远不要手动设置字符串格式或将值连接到查询中。因此,当我像这样插入值时,请在Hotel_A(date,Suite,StandardKing)值('2017-09-12',5,3)中插入值,而不是写入实际值,我希望使用变量。因此,我希望它看起来像是插入到Hotel_A(日期、套房、标准金)值(日期、int1、int2),其中日期、int1和int2实际上是2017-09-12、5和3。这有意义吗?是的。看看前面评论中链接的问题。您正在寻找占位符。另外,请阅读有关如何传递变量的psycopg2文档:。再说一次,不要自己使用任何形式的字符串格式。这包括f字符串、
str.format()
和旧格式。