如何从 pyodbc fetch 获取整数?
how to get intergers from pyodbc's fetch?
我正在尝试使用 update
语句,但我的数据库不接受 (int, )
仅 int。
import pyodbc
connect_data = (
r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};
r'DBQ=C:\filename.accdb;'
)
cnxn = pyodbc.connect(connect_data)
crsr = cnxn.cursor()
crsr.execute('select ID from WeatherAnalisis')
weathertable = crsr.fetchmany(5)
for rowcount in weathertable:
timeCET = timeCET + timeincrement
print (rowcount)
sql = "UPDATE WeatherAnalisis SET Time_UTC = ? WHERE ID = ?"
crsr.execute(sql, timeCET, rowcount)
cnxn.commit()
>>>>
(1, )
crsr.execute(sql, timeCET, rowcount)
pyodbc.Error: ('HY004', '[HY004] [Microsoft][ODBC Microsoft Access Driver]Invalid SQL data type (67) (SQLBindParameter)')
这似乎是因为 rowcount
是 (int, )
格式而不是 int
现在我的问题是:如何让它只给我整数?
我自己想出了一些办法
rowiercount = str(rowcount)
rowiercount.replace("(", "").replace(")", "").replace(" ", "").replace(",", ""))
它很可能不是有效的,但它似乎可以完成工作
我还不会将此标记为已解决,因为如果其他人遇到此问题,可能有更好的方法来解决此问题。
.fetchmamy()
returns pyodbc Row
对象列表。 Row
对象的行为类似于元组,因此如果它只包含一列,您可以将其提取为标量值,如下所示:
for row in weathertable:
rowcount = row[0]
我正在尝试使用 update
语句,但我的数据库不接受 (int, )
仅 int。
import pyodbc
connect_data = (
r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};
r'DBQ=C:\filename.accdb;'
)
cnxn = pyodbc.connect(connect_data)
crsr = cnxn.cursor()
crsr.execute('select ID from WeatherAnalisis')
weathertable = crsr.fetchmany(5)
for rowcount in weathertable:
timeCET = timeCET + timeincrement
print (rowcount)
sql = "UPDATE WeatherAnalisis SET Time_UTC = ? WHERE ID = ?"
crsr.execute(sql, timeCET, rowcount)
cnxn.commit()
>>>>
(1, )
crsr.execute(sql, timeCET, rowcount)
pyodbc.Error: ('HY004', '[HY004] [Microsoft][ODBC Microsoft Access Driver]Invalid SQL data type (67) (SQLBindParameter)')
这似乎是因为 rowcount
是 (int, )
格式而不是 int
现在我的问题是:如何让它只给我整数?
我自己想出了一些办法
rowiercount = str(rowcount)
rowiercount.replace("(", "").replace(")", "").replace(" ", "").replace(",", ""))
它很可能不是有效的,但它似乎可以完成工作 我还不会将此标记为已解决,因为如果其他人遇到此问题,可能有更好的方法来解决此问题。
.fetchmamy()
returns pyodbc Row
对象列表。 Row
对象的行为类似于元组,因此如果它只包含一列,您可以将其提取为标量值,如下所示:
for row in weathertable:
rowcount = row[0]