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

Vin*_*ran 1 snowflake-schema python-3.x snowflake-cloud-data-platform

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

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

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)"
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

Snowflake.connector.errors.ProgrammingError:000904(42000):SQL编译错误:位置100处的错误行1无效标识符“SCORE_CREATION_DATE”

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

请建议什么是正确的方法?

Yuv*_*kov 5

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

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}')"
)
Run Code Online (Sandbox Code Playgroud)