如何使用 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
我正在尝试使用 pandas
和 pyodbc
将数据从 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('.'))
我正在尝试使用 pandas
和 pyodbc
将数据从 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('.'))