m0_66754108 2022-05-09 22:07 采纳率: 72.7%
浏览 150
已结题

eval函数 如何解决(语言-python)

问下这里为啥要写 d=dict(eval(item)),是什么意思,一直没想明白,麻烦帮忙看看
def search():
student_query=[]
while True:
id=''
name=''
if os.path.exists(filename):
mode=input('按照id查找输入1,按姓名查找输入2\n')
if mode=='1':
id=input('请输入id值:')
elif mode=='2':
name=input('请输入姓名:')
else:
print("您的输入有误")
search()

        with open(filename,'r',encoding='utf-8') as rfile:
           
            students=rfile.readlines()
          
            for item in students:
              
                d=dict(eval(item))
                if id != '':
                    if d['id']==id:
                        student_query.append(d)
                elif name != '':  
                    if d['name']==name:
                        student_query.append(d)
  • 写回答

1条回答 默认 最新

  • 溪风沐雪 2022-05-09 22:11
    关注

    我估计item 是一个数组或者字典,只不过是以字符串形式存储的,无法直接使用,用eval函数可以把字符串转化为代码
    比如我有一个数组,是字符串“[1,2,3,4,5]”,在这种情况下是无法遍历其元素的,通过eval(“[1,2,3,4,5]”)就可以转化为真正的数组,就可以通过下标去访问数组的元素

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月17日
  • 已采纳回答 5月9日
  • 创建了问题 5月9日