从字典中检索信息

时间:2015-12-30 11:38:14

标签: python python-3.x dictionary

我很难尝试阅读我的字典变量。 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仅用于从中读取数据。

1 个答案:

答案 0 :(得分:1)

我发现了问题,这是我的信号定义。字典' self.dict'正在通过pyqtSignal返回,其定义如下:

addUser = pyqtSignal(object)

在仔细检查我的代码后,我发现我应该将其更改为:

addUser = pyqtSignal(dict)

一旦我这样做就没事了。再次感谢大家的贡献。