我试图打印从数据库中提取并转换为字符串的整数的最后一位数字。通常,此代码可以正常打印字符串的最后一个字符,即使它的数字已被转换为字符串:
x = 225
print x[-1]
5
但是,当我尝试对从数据库中提取的值执行相同操作时,Python解释器为我提供了超出范围错误的字符串索引。
这是我的代码:
import MySQLdb
#mysql card_numbercheck
class NumberCheck(object):
def __init__(self):
self.conn = MySQLdb.connect(host='localhost', user='root', passwd='', db='mscan')
self.c = self.conn.cursor()
def query(self, arg, cardname):
self.c.execute(arg, cardname)
return self.c
def __del__(self):
self.conn.close()
# Define SQL statement to select all Data from Column Name
sql = "SELECT card_number FROM inventory_2 WHERE card_name = %s"
#Connect To DB and Get Number of Card.
def Get_MTG_Number():
global card_number
MtgNumber = NumberCheck()
for number in MtgNumber.query(sql, 'Anathemancer'):
card_number = str(number[0])
print card_number[-1]
Get_MTG_Number()
逻辑上,我并不完全理解为什么这段代码不起作用。任何帮助都将受到高度赞赏。
亲切的问候 千斤顶
答案 0 :(得分:0)
也许有些数据字段是空白的,通过转换为字符串,你只是得到一个空字符串?尝试索引这样的字符串会给你一个'索引超出范围'错误。
要查看发生了什么,您可以在循环的每次迭代时简单地打印card_number。您还可以使用更多的错误处理来清理从数据库获取的数据。