我很难尝试阅读我的字典变量。 Python不断抛出以下错误:
TypeError: string indices must be integers
这是一个可以让您了解我的问题的示例:
self.dict = {}
self.dict['User'] = 'User_name'
self.dict['Dir'] = 'user_home_dir'
self.dict['userID'] = 1
if self.dict['userID'] == 1: # this is the line that is said to contain an error
then do somethin ...
这就是我得到的回溯:
user_id = self.dict['userID']
TypeError: string indices must be integers
不,我肯定self.dict
不是字符串。
它是在一个名为createUser的函数中创建的,它将被返回到主线程。
def createUser(self):
self.dict = {}
... user inputs information ...
... and then information is inserted into self.dict ...
self.dict['User'] = self.lineEdit_User.text()
self.dict['Dir'] = self.lineEdit_path.text()
self.dict['userID'] = int(self.lineEdit_ID.text())
return self.dict
之后self.dict
仅用于从中读取数据。
答案 0 :(得分:1)
我发现了问题,这是我的信号定义。字典' self.dict'正在通过pyqtSignal返回,其定义如下:
addUser = pyqtSignal(object)
在仔细检查我的代码后,我发现我应该将其更改为:
addUser = pyqtSignal(dict)
一旦我这样做就没事了。再次感谢大家的贡献。