Ошибка интерфейса при импорте фрейма данных Pandas в SQL Server - PullRequest
0 голосов
/ 25 октября 2019

У меня есть фрейм данных pandas: data Я пытаюсь прочитать этот фрейм данных pandas в таблицу на сервере sql. Я могу прочитать данные в Python из SQL, но у меня возникают проблемы с загрузкой кадра данных в таблицу.

Я пробовал несколько примеров, но продолжаю получать ту же ошибку: DatabaseError: Выполнение не удалось наsql 'ВЫБРАТЬ имя ИЗ sqlite_master WHERE тип =' таблица 'И имя = ?;': ('42S02', "[42S02] [Microsoft] [Драйвер ODBC SQL Server] [SQL Server] Недопустимое имя объекта 'sqlite_master'. (208) (SQLExecDirectW); [42S02] [Microsoft] [Драйвер ODBC SQL Server] [SQL Server] Оператор (ы) не может быть подготовлен. (8180) ")

На данный момент у меня естьследующий код:

PASSW           = 'test'   
SERVER          = '111.111.11'
DB              = 'Database'
Table           = 'TableName'



data = pd.read_csv('2019_Prediction_24_10.csv')
cnxn = pyodbc.connect(DRIVER='{ODBC Driver 13 for SQL Server}', SERVER= SERVER, 
                          DATABASE= DB,User = 'User', Password = PASSW)

data.to_sql(con=cnxn, name='Predictions',schema = 'PA' ,if_exists='replace')

Я новичок в pyodbc и использую Python вместе с сервером SQL, я не совсем уверен, что идет не так, не говоря уже о том, чтобы это исправить.

Может кто-нибудь помочь мне,или укажи мне правильное направление

1 Ответ

0 голосов
/ 25 октября 2019

Как указано в документации to_sql :

con: sqlalchemy.engine.Engine или sqlite3.Connection

Вы указали to_sql с (pyodbc) Connection объектом, поэтому pandas рассматривает его как соединение SQLite. Чтобы использовать to_sql с SQL Server, вам нужно установить SQLAlchemy, создать объект Engine и передать его в to_sql.

...