Python字符串索引必须是整数而不是str

时间:2013-04-17 14:19:49

标签: python python-2.7

这是我的代码:

dbcur.execute('select girismuzik from users where name = ?', [username])
rrf = dbcur.fetchone()
girismuzik = rrf
self.sendData("\x1A" + "\x0C" [girismuzik])

但这是错误:

string indices must be integers not str

3 个答案:

答案 0 :(得分:1)

您正在尝试在此处切片:

self.sendData("\x1A" + "\x0C" [girismuzik])

girismuzik表示字符串值。

也许你忘记了一个逗号?

self.sendData("\x1A" + "\x0C", [girismuzik])

答案 1 :(得分:0)

如果没有堆栈跟踪和其他代码,很难说清楚。但是,

self.sendData("\x1A" + "\x0C" [girismuzik]) 

这就是问题所在。

具体来说:"\x0C" [girismuzik]

这是一个字符串,然后是一个索引。 (因为你可能忘了,)。它将转换为"string"[x],如果x不是int,则表示错误。

答案 2 :(得分:0)

cursor.fetchone()可能会从查询中返回一个结果行的元组(其中包含一列)。

你可能会更喜欢这样的事情:

dbcur.execute('select girismuzik from users where name = ?', [username])
rrf = dbcur.fetchone()
girismuzik = rrf[0]
self.sendData("\x1A" + "\x0C" + girismuzik)