如何使用pyodbc将数据从工作表excel文件推送到\u sql,以及使用windows身份验证的sql server management studio express r2

2024-04-23 19:43:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用pandaspyodbc将数据从excel文件推送到sqlserverexpressmanagementstudio2008,因为我需要通过在数据库myDB中创建表来推送数据

这是我的密码

import pyodbc
import pandas as pd
import os

import sqlalchemy
from sqlalchemy import create_engine

# connect db
engine = create_engine('mssql+pyodbc://WWX542337CDCD\SMARTRNO_EXPRESS/myDB?driver=SQL+Server+Native+Client+11.0')
cursor = engine.raw_connection().cursor()


mydir = (os.getcwd()).replace('\\', '/') + '/'

lte_details = pd.read_excel(r'' + mydir + 'MNM_Rotterdam_5_Daily_Details-20191216081027.xlsx', sheet_name='LTE Details')

lte_details.columns = lte_details.columns.str.replace(' ', '')

# reading and insert one file at a time
for file in os.listdir('.'):
    # only process excels files
    file_basename, extension = file.split('.')
    if extension == 'xlsx':
        lte_details.to_sql(file_basename.lower(), con=engine.connect(), if_exists='replace')

我发现这个错误:

Traceback (most recent call last):
  File "C:/Users/mwx825326/PycharmProjects/MyReference/test.py", line 22, in <module>
    file_basename, extension = file.split('.')
ValueError: not enough values to unpack (expected 2, got 1)

这就是我的联系 connection sql 有人知道怎么解决这个问题吗?你知道吗


Tags: 数据importpandasosextensiondetailsexcelengine
1条回答
网友
1楼 · 发布于 2024-04-23 19:43:29

嗯,你可以尝试使用sqlalchemy连接。因为pd.read_sql中的con使用sqlalchemy engine。你知道吗

from sqlalchemy import create_engine

engine = create_engine('mssql+pyodbc://**server**/**db**?driver=SQL+Server+Native+Client+11.0')
cursor = engine.raw_connection().cursor()

lte_details.to_sql(file_basename.lower(), con=engine.connect(), if_exists='replace')

你可以试试这个

file_basename, extension = tuple(file.split('.'))

相关问题 更多 >