-4

这是我的代码:

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
4

3 回答 3

1

您正在尝试在此处对字符串进行切片:

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

girismuzik引用一个字符串值。

也许您忘记了逗号?

self.sendData("\x1A" + "\x0C", [girismuzik])
于 2013-04-17T14:20:47.863 回答
0

如果没有堆栈跟踪和其他代码,很难说出更多信息。但,

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

这就是问题。

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

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

于 2013-04-17T14:22:09.460 回答
0

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

您可能更喜欢以下内容:

dbcur.execute('select girismuzik from users where name = ?', [username])
rrf = dbcur.fetchone()
girismuzik = rrf[0]
self.sendData("\x1A" + "\x0C" + girismuzik)
于 2013-04-17T14:25:49.647 回答