python - 不明白这个AttributeError的原因

标签 python python-3.x

这段代码有什么问题?当我运行时它告诉我:

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

最佳答案

问题是,在第 24 行,您尝试将字典附加到字符串。当您读取 db 文件时,它会将其作为字符串读取。而且代码确实很困惑,还有很多更好的方法可以做到这一点。但这不是重点,根据您的错误输出,append() 方法用于列表,变量“people”是一个字符串。

关于python - 不明白这个AttributeError的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53055936/

相关文章:

python - 在 Pandas Dataframes 中查找单个文件的第一行和最后一行

python - 在 Pycharm 的语法高亮中更改 __init__ 和其他预定义项的颜色

python - 如何更改字典中键值对的顺序?

python - 为什么在这种情况下我不需要使用非本地?

python - 修剪/缩尾标准差

java - java 与 python 结构相似的功能

Python 如何连接内部数组并连接键值

python - python 日志记录处理程序中 setLevel 的意义是什么?

python-3.x - Gtk 警告 ** : cannot open display: raspberry pi opencv

python - 如何将文件数据存储为类对象?