Snowflake Python 连接器插入不接受变量

Snowflake Python connector insert doesn't accept variables

我正在尝试使用雪花连接器在 table 中插入一条记录。

在 snowflake doc 中,他们展示了带有硬编码字符串的示例,但是当我尝试使用我的变量时,它不起作用。请建议在这种情况下如何使用变量。

conn.cursor().execute(
            "INSERT INTO cm.crawling_metrics(FEED_DATE,COMP_NAME,REFRESH_TYPE,CRAWL_INPUT,CRAWL_SUCCESS) VALUES " +
            "(score_creation_date,compName,sRefreshType,mp_sku_count,comp_sku_count)"

我收到以下错误

snowflake.connector.errors.ProgrammingError: 000904 (42000): SQL compilation error: error line 1 at position 100 invalid identifier 'SCORE_CREATION_DATE'

注意:在上面的代码中,如果我用字符串而不是变量进行硬编码,它就可以工作。

请指出正确的方法是什么?

您需要对代码使用字符串插值/格式化才能将它们用作实际变量:

conn.cursor().execute(
    "INSERT INTO cm.crawling_metrics (FEED_DATE, COMP_NAME, REFRESH_TYPE, CRAWL_INPUT, CRAWL_SUCCESS) VALUES " +
    f"('{score_creation_date}', '{compName}', '{sRefreshType}', '{mp_sku_count}', '{comp_sku_count}')"
)