因此,我有一个要连接的MySQL数据库,并且在特定表中有两行,其中之一是VARCHAR,另一行是INT。
这就是我使用Python进入数据库的方式:
player = seluse.get()
cnx = mysql.connector.connect(**config)
cursor = cnx.cursor()
sql = "SELECT * FROM db_PROMOTIONS WHERE player = '%s'" % (player)
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
prank = row[1]
现在,现在没有问题,但是我想减少“ prank”变量,它在MySQL中是一个INT。
我这样做是:
prank = prank - 7
现在这对我来说是一个问题:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1536, in __call__
return self.func(*args)
File "C:/Python27/Scripts/data.py", line 201, in insert_new
prank = prank - 7
TypeError: unsupported operand type(s) for -: 'unicode' and 'int'
有什么建议么?
最佳答案
您应该将恶作剧转换为int
:
for row in results:
prank = int(row[1])
当您使用mysql.execute获取值时,所有返回字段均为字符串。
您可以使用
SQLAlchemy
来自动转换值,关于python - Python/MySQL数学,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34480193/