gpt4 book ai didi

python - 属性错误 : 'SnowflakeCursor' object has no attribute 'cursor'

转载 作者:行者123 更新时间:2023-12-04 12:32:23 31 4
gpt4 key购买 nike

我正在尝试使用 to_sql 方法将我的 DataFrame 写入 Snowflake。

sf_conn = snowflake.connector.connect(
account=*****,
user=*****,
password=*****,
role=*****,
warehouse=*****,
database=*****

)

sf_cur = sf_conn.cursor()
df = pd.DataFrame([('Mark', 10), ('Luke', 20)], columns=['name', 'balance'])
df.to_sql('TEST3',con=sf_cur, schema='public', index=False)
但还没有运气。
File "/home/karma/.local/lib/python3.6/site-packages/pandas/io/sql.py", line 1584, in execute
cur = self.con.cursor()
AttributeError: 'SnowflakeCursor' object has no attribute 'cursor'
甚至尝试给 con=sf_conn但得到以下错误:
pandas.io.sql.DatabaseError: Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND name=?;': not all arguments converted during string formatting
我可以使用 sqlAlchemy create_engine lib 做同样的工作,但想专门使用雪花连接。

最佳答案

使用 pandas.DataFrame.to_sql 时需要使用 SQLAlchemy 引擎作为连接与雪花。
当您使用 df.to_sql ,您需要传入 SQLAlchemy 引擎,而不是标准的 Snowflake 连接对象(也不是您尝试过的游标)。您需要安装 snowflake-sqlalchemy使用 pip 但你不需要安装 snowflake-connector-python因为snowflake-sqlalchemy 为你做这件事。
这是一个对我有用的例子:

from sqlalchemy import create_engine
import os
import pandas as pd

snowflake_username = os.environ['SNOWFLAKE_USERNAME']
snowflake_password = os.environ['SNOWFLAKE_PASSWORD']
snowflake_account = os.environ['SNOWFLAKE_ACCOUNT']
snowflake_warehouse = os.environ['SNOWFLAKE_WAREHOUSE']
snowflake_database = 'test_db'
snowflake_schema = 'public'


if __name__ == '__main__':
engine = create_engine(
'snowflake://{user}:{password}@{account}/{db}/{schema}?warehouse={warehouse}'.format(
user=snowflake_username,
password=snowflake_password,
account=snowflake_account,
db=snowflake_database,
schema=snowflake_schema,
warehouse=snowflake_warehouse,
)
)
df = pd.DataFrame([('Mark', 10), ('Luke', 20)], columns=['name', 'balance'])
df.to_sql('TEST_TABLE', con=engine, schema='public', index=False, if_exists='append')
每次运行上述脚本时,Mark 和 Luke 记录都会附加到我的 test_db.public.test_table 中。 table 。

关于python - 属性错误 : 'SnowflakeCursor' object has no attribute 'cursor' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64505552/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com