如何使用 pyodbc、to_sql 和 sql server management studio express r2 使用 windows 身份验证从 sheet excel 文件推送数据

How to push data from sheet excel file using pyodbc, to_sql, and sql server managment studio express r2 using windows authentication

我正在尝试使用 pandaspyodbc 将数据从 excel 文件推送到 sql_server express management studio 2008,因为我需要通过创建table 在数据库中 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)

这是我的连接 有人知道如何解决这个问题吗?

恕我直言,您可以尝试使用 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('.'))