Python 2.7 转换为字符串的元组整数的索引超出范围

Python 2.7 转换为字符串的元组整数的索引超出范围,python-2.7,Python 2.7,我试图打印从数据库中提取并转换为字符串的整数的最后一位。通常,此代码可以很好地打印字符串的最后一个字符,即使它是一个已转换为字符串的数字: x = 225 print x[-1] 5 但是,当我尝试对从数据库中提取的值执行相同的操作时,Python解释器会给我一个字符串索引超出范围的错误 这是我的密码: import MySQLdb #mysql card_numbercheck class NumberCheck(object): def __init__(self):

我试图打印从数据库中提取并转换为字符串的整数的最后一位。通常,此代码可以很好地打印字符串的最后一个字符,即使它是一个已转换为字符串的数字:

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]        
获取编号()

从逻辑上讲,我真的不明白为什么这个代码不起作用。任何帮助都将不胜感激

问候
杰克

也许有些数据字段是空的,通过转换成字符串,你只会得到一个空字符串?尝试为这样的字符串编制索引将导致“索引超出范围”错误

要查看发生了什么,只需在循环的每次迭代中打印卡号即可。您还可以进行更多的错误处理来清理从数据库中获取的数据