psycopg2在我的字符串周围添加引起问题的引号

时间:2018-12-14 21:21:46

标签: python postgresql psycopg2

我有以下脚本:

create_table_WAC = """
create table if not exists %s (
    w_geocode text,
    C000 text,
    CFS04 text,
    CFS05 text,
    createdate text
)
"""

target_directory = Path(sys.argv[1]).resolve()

for file in target_directory.rglob('*.csv'):

    table_name = 'opendata_uscensus_lodes_' + str(file.stem)
    print(table_name)

    # MAKE SURE THIS IS THE RIGHT TABLE FOR THE FILES
    cur.execute(create_table_WAC, (table_name,))

    with open(file,'r') as file_in:

        # MAKE SURE THIS HAS THE RIGHT TABLE NAME IN THE COPY STATEMENT
        cur.copy_expert("copy %s from stdin with csv header delimiter ','", table_name, file_in)

        conn.commit()

conn.close()

当我运行它时,它抛出与CREATE TABLE命令有关的错误。我不明白为什么要添加''以及如何删除它们?

这是错误:

psycopg2.ProgrammingError: syntax error at or near "'opendata_uscensus_lodes_ca_wac_SA02_JT03_2003'"
LINE 2: create table if not exists 'opendata_uscensus_lodes_ca_wac_S...

1 个答案:

答案 0 :(得分:2)

使用SQL字符串组成:

 if indexPath.row == 3 {   // hide cell at indexPath 3

阅读全面的说明in the documentation.