我试图从MS Access数据库MDB文件中插入信息,不幸的是,我不知道如何使用Python对数据库表中的列进行分隔
我发现了错误
ValueError: Shape of passed values is (109861, 1), indices imply (3,1)
我使用的代码是:
import os
import shutil
import pyodbc
import pandas as pd
import csv
from datetime import datetime
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\Users\\sguerra\\Desktop\\Python\\Measurements-2020-12-15.mdb;')
cursor = conn.cursor()
cursor.execute('select * from Measurements')
new = cursor.fetchall()
columns = ['Prod_Date','Prod_Time','CCE_SKU']
df = pd.DataFrame(new,columns)
for row in df.itertuples():
cursor.execute('''
insert into MITSF_1.dbo.MeasurementsTest ([Prod_Date],[Prod_Time],[CCE_SKU])
VALUES (?,?,?)
''',
row.Prod_Date,
row.Prod_Time,
row.CCE_SKU
)
conn.commit()
您正在使用相同的
cursor
尝试并执行select
和insert
,因此这两个语句将在同一数据库上运行。为了简化操作,您应该使用pandasread_sql_query()
从Access读取所需的列,然后使用to_sql()
将它们写入SQL Server:相关问题 更多 >
编程相关推荐