问题描述
我正在尝试从 Access 数据库中检索和打印一行。我希望用户输入一个 ID 和一个字段,然后输入一个要打印的值。
这是我目前的代码...
import pypyodbc
import pandas
conn = pypyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=C:\Users\Operator\Documents\T31_DB.accdb;')
cursor = conn.cursor()
cursor.execute('SELECT * FROM [TABLE_SIGNAL_ID]')
data = cursor.fetchall()
df = pandas.DataFrame(data)
dfi = df.set_index([0],drop=False)
ID = raw_input("enter signal ID:")
ID = int()
res = dfi.iloc[[ID]]
print res
有什么方法可以让我从 Access 中保留标题,以便从行中提取特定项目?不想手动重命名列,因为太多了。
感谢任何帮助。
解决方法
我设法做到了,但使用的是 SQL!
import pandas as pd
import pypyodbc
import sqlalchemy
conn = pypyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=C:\Users\Operator\Documents\T31_DB.accdb;')
df = pd.read_sql('SELECT * FROM [TABLE_SIGNAL_ID]',conn)
dfi = df.set_index("signal_id",drop=False)
ID = raw_input("enter signal ID:")
res = dfi.loc[ID,["signal_id","abname","system_id"]]
print res