slhjynvl 2022-05-28 07:56 采纳率: 73.3%
浏览 42
已结题

这个错误是什么意思?

问题遇到的现象和发生背景

这个错误是什么意思?

问题相关代码,请勿粘贴截图
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行的代码哪里有误

我想要达到的结果

展开全部

  • 写回答

1条回答 默认 最新

  • __程序喵__ 2022-05-28 12:24
    关注

    你这里使用了eval,而传的参是"{"
    注意,你使用for来遍历studeng_old,而这个变量是从文件读过来的,类型是str,根据这段代码推测可能是一个在字符串中的字典。
    你应该先直接把这个studeng_old给eval,然后遍历。
    还有命名是不是写错了 student_old应该是

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    slhjynvl 2022-05-28 15:47

    student_old是readline方法得到的列表,类型应该不是str吧,而且我试了吧eval加在student_old前面,还是报错

    回复
    __程序喵__ 回复 slhjynvl 2022-05-28 23:59

    那就是你这个列表的项有问题了
    其中某个项是"{"

    回复
    slhjynvl 回复 __程序喵__ 2022-05-30 14:41

    我找到问题了,用的函数方法错了,应该用readlines方法,少了个s

    回复
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 6月20日
  • 已采纳回答 6月13日
  • 创建了问题 5月28日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部