【问题标题】:I can't create table by getting column names from a list?(postgresql/psycopg2)我无法通过从列表中获取列名来创建表?(postgresql/psycopg2)
【发布时间】:2020-11-13 00:28:05
【问题描述】:

我在下面准备了两个示例列表。我的目标是在 postgresql.id 中创建一个包含这两个列表的表,这将是 bigserial 主键。但我不断收到错误。你觉得我能做到吗?

我的示例列表和代码:

my_column_name = ['id','first name','surname','age']

data= [{'Jimmy', 'wallece', 17}]


connection = psycopg2.connect(user = "postgres",
                              password = "Sabcanuy.1264",
                              host="127.0.0.1",
                              port="5432",
                              database="postgres")

cursor = connection.cursor()


create_table_query = '''CREATE TABLE unit_category_report (ID BIGSERIAL  PRIMARY KEY , 
my_columne_name); '''

【问题讨论】:

    标签: python sql postgresql psycopg2


    【解决方案1】:

    字符串不能访问变量及其值。

    我不能 100% 确定这会奏效,但您可以尝试:

    my_column_name =['id','first_name','surname','age']
    
    create_table_query = '''CREATE TABLE unit_category_report (ID BIGSERIAL  PRIMARY KEY , %s); ''' % (my_column_name)
    

    或者……

    create_table_query = '''CREATE TABLE unit_category_report (ID BIGSERIAL  PRIMARY KEY , {0}); '''.format(my_column_name)
    

    您可能必须从三重单引号切换到双引号。

    【讨论】:

    • 很抱歉。我怎么会想不到呢?我正在经历一个艰难的过程。非常感谢您的回答:)
    • 不,你很好。我们都会犯错。
    猜你喜欢
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 2020-07-05
    相关资源
    最近更新 更多