该代码有什么问题?当我运行时,它告诉我:
Traceback (most recent call last):
line 24, in <module>
people.append(Dict)
AttributeError: 'str' object has no attribute 'append'
我的代码:
live = 1
while live == 1:
#reading Database
dataRead = open ("db.txt","r")
if dataRead.read() != " ":
dataRead.close()
people = open ('db.txt','r').read()
do = input ('What Do You Want ? (Search , add) :\n')
#add people
if do == 'add':
#Get The New Data
n_Name = input ('enter the new name:\n')
n_age = input ('enter the new age:\n')
#new Dict
Dict = {'Name:':n_Name,'age':n_age}
people.append(Dict)
#adding people to file
dataWrite = open ("db.txt","w")
dataWrite.write(str(people))
dataWrite.close()
live = 0
答案 0 :(得分:0)
问题是,在第24行上,您尝试将字典附加到字符串。当您读取数据库文件时,它会以字符串形式读取它。而且代码真的很乱,并且有很多更好的方法可以做到。但是,除此之外,根据错误输出,append()方法用于列表,变量“ people”是字符串。
答案 1 :(得分:0)
它说人是str
,那么它没有附加方法。您应该串联字符串以使它们在一起。
要做:
people += '<append string>'
请记住,您正在尝试将字典附加到字符串。这将引发TypeError,因为那些类型的元素无法通过这种方式串联。您应该先执行以下操作:str(dict)
将它们连接起来。
您还使用诸如dict
之类的保留字作为变量。将其更改为my_dict或其他允许的名称。