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

时间:2015-06-18 04:27:42

标签: python-2.7

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

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()

逻辑上,我并不完全理解为什么这段代码不起作用。任何帮助都将受到高度赞赏。

亲切的问候 千斤顶

1 个答案:

答案 0 :(得分:0)

也许有些数据字段是空白的,通过转换为字符串,你只是得到一个空字符串?尝试索引这样的字符串会给你一个'索引超出范围'错误。

要查看发生了什么,您可以在循环的每次迭代时简单地打印card_number。您还可以使用更多的错误处理来清理从数据库获取的数据。