正在尝试将Pandas Dataframe 插入到临时表

jobtbby3  于 2022-10-03  发布在  其他
关注(0)|答案(0)|浏览(130)

我希望创建一个临时表,并在其中插入一些数据。我曾广泛使用pyodbc来获取数据,但我不熟悉如何将数据从python环境写入到SQL。我在工作中这样做,所以我没有能力创建表,但我可以创建临时表和全局临时表。我的目的是将一个相对较小的 Dataframe (150行x 4个)插入到一个临时表中,并在我的会话中引用它,我的程序结构使得它在会话中的全局变量将不够用。当我尝试下面的片段时,我得到了以下错误,我做错了什么?

pyodbc.ProgrammingError: ('42S02', "[42S02] [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'sqlite_master'. (208) (SQLExecDirectW); [42S02] [Microsoft][ODBC SQL Server Driver][SQL Server]Statement(s) could not be prepared. (8180)")

import numpy as np
import pandas as pd
import pyodbc

conn = pyodbc.connect('Driver={SQL Server};'
                      'Server=SERVER;'
                      'Database=DATABASE;'
                      'Trusted_Connection=yes;')

cursor = conn.cursor()

temp_creator = '''CREATE TABLE #rankings (Col1 int, Col2 int)'''

cursor.execute(temp_creator)

df_insert = pd.DataFrame({'Col1' : [1, 2, 3], 'Col2':[4,5,6]})
df_insert.to_sql(r'#rankings', conn, if_exists='append')
read_query = '''SELECT * FROM #rankings'''
df_back = pd.read_sql(read_query,conn)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题