这个错误是什么意思?
def delete():
while True:
studeng_id=input('请输入你要删除的学生id:')
if studeng_id!='':
if os.path.exists(filename):
with open(filename,'r',encoding='utf-8')as rfile:
studeng_old=rfile.readline()
else:
studeng_old=[]
flag=False
if studeng_old:
with open(filename,'w',encoding='utf-8') as wfile:
d={}
for item in studeng_old:
d=dict(eval(item))
if d['id']!=studeng_id:
wfile.write(str(d)+'\n')
else:
flag=True
if flag:
print(f'id为{studeng_id}的学生已被删除!')
else:
print(f'没有找到id为{studeng_id}的学生!')
Traceback (most recent call last):
File "C:\Users\1\PycharmProjects\pythonProject4\venv\Scripts\stusystem.py", line 123, in <module>
main()
File "C:\Users\1\PycharmProjects\pythonProject4\venv\Scripts\stusystem.py", line 23, in main
delete()
File "C:\Users\1\PycharmProjects\pythonProject4\venv\Scripts\stusystem.py", line 89, in delete
d=dict(eval(item))
File "<string>", line 1
{
^
SyntaxError: '{' was never closed
上面说语法错误,可我找不要89行的代码哪里有误
你这里使用了eval,而传的参是"{"
。
注意,你使用for来遍历studeng_old,而这个变量是从文件读过来的,类型是str,根据这段代码推测可能是一个在字符串中的字典。
你应该先直接把这个studeng_old给eval,然后遍历。
还有命名是不是写错了 student_old应该是