这是我的代码:
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
答案 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)