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 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 Ubuntu开机显示器只显示kernel,是没操作系统(相关搜索:显卡驱动)
  • ¥15 VB.NET如何绘制倾斜的椭圆
  • ¥15 arbotix没有/cmd_vel话题
  • ¥20 找能定制Python脚本的
  • ¥15 odoo17的分包重新供应路线如何设置?可从销售订单中实时直接触发采购订单或相关单据
  • ¥15 用C语言怎么判断字符串的输入是否符合设定?
  • ¥15 通信专业本科生论文选这两个哪个方向好研究呀