Snowflake Account must be specified 错误,但已指定

Snowflake Account must be specified error, but it is specified

我有以下代码,我有帐户、用户名、密码等,但我仍然看到以下错误:

raise error_class( sqlalchemy.exc.ProgrammingError: (snowflake.connector.errors.ProgrammingError) 251001: Account must be specified

我也试过在 created_db_engine 函数中更改 engine 变量,如下所示,但我看到了同样的错误:

engine = snowflake.connector.connect(
                user='USER',
                password='PASSWORD',
                account='ACCOUNT',
                warehouse='WAREHOUSE',
                database='DATABASE',
                schema='SCHEMA'
                )

这是我的代码

import pandas as pd
from snowflake.sqlalchemy import URL
from sqlalchemy import create_engine
import snowflake.connector
from snowflake.connector.pandas_tools import write_pandas, pd_writer
from pandas import json_normalize
import requests

  
df = 'my_dataframe'

   
def create_db_engine(db_name, schema_name):
    engine = URL(
        account="ab12345.us-west-2.snowflakecomputing.com",
        user="my_user",
        password="my_pw",
        database="DB",
        schema="PUBLIC",
        warehouse="WH1",
        role="DEV"
    )
    return engine


def create_table(out_df, table_name, idx=False):
    url = create_db_engine(db_name="db", schema_name="skm")
    engine = create_engine(url)
    connection = engine.connect()

    try:
        out_df.to_sql(
            table_name, connection, if_exists="append", index=idx, method=pd_writer
        )

    except ConnectionError:
        print("Unable to connect to database!")

    finally:
        connection.close()
        engine.dispose()

    return True

print(df.head)

create_table(df, "reporting")

鉴于 Snowflake documentation for SqlAlchemy,您的 帐户 参数不应包含 snowflakecomputing.com.

所以您应该尝试使用 ab12345.us-west-2,连接器会自动为您附加域部分。