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日

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据