【发布时间】:2020-12-23 20:47:41
【问题描述】:
我正在尝试从 MS Access 数据库 MDB 文件中插入信息,不幸的是,我不知道如何使用 Python 分隔数据库表中的列。
我收到了错误
ValueError: 传递值的形状是 (109861, 1),索引意味着 (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()
【问题讨论】:
-
第一个 MDB 文件表示 Access 数据库。你为什么要为此使用 Pandas?真的有一个名为
MITSF_1.dbo.MeasurementsTest的表吗? -
你好@Parfait,是的,我知道MDB是Access数据库,我想做的是将我们设备在Access中生成的所有日常信息整合到我的SQL数据库中,是的,有我的 SQL 数据库中名为“MITSF_1.dbo.MeasurementsTest”的表
-
Access 运行 SQL。所以它是一个SQL数据库。你是说 SQL Server 数据库吗?具体来说,该表是 MS Access 中指向 SQL Server 数据库的链接表吗?
标签: python pandas ms-access pyodbc