eval函数在python中做数据类型的转换还是很有用的。它的作用就是把数据还原成它本身或者是能够转化成的数据类型。

那么eval和ast.literal_val()的区别是什么呢?

eval在做计算前并不知道需要转化的内容是不是合法的(安全的)python数据类型。只是在调用函数的时候去计算。如果被计算的内容不是合法的python类型就会抛出异常。

ast.literal则会判断需要计算的内容计算后是不是合法的python类型,如果是则进行运算,否则就不进行运算。

------------------------------引用自stackoverflow--------------------------------

datamap = eval(raw_input('Provide some data here: ') means that you actually evaluate the code before you deem it to be unsafe or not. It evaluates the code as soon as the function is called. See also the dangers of eval.

ast.literal_eval raises an exception if the input isn't a valid Python datatype, so the code won't be executed if it's not.

Use ast.literal_eval whenever you need eval. If you have Python expressions as an input that you want to evaluate, you shouldn't (have them).
--------------------- 
作者:zhiqiang21 
来源:CSDN 
原文:https://blog.csdn.net/yisuowushinian/article/details/45644299 
版权声明:本文为博主原创文章,转载请附上博文链接!

ast.literal_eval相关推荐

  1. 建议使用更加安全的ast.literal_eval去替代eval

    前言 如果大家想要在python中将字符串转换成列表,数字,字典等操作,都会想到使用eval(),确实这个函数很好用,但是它却存在一定的安全性 eval的漏洞 如果用户使用如下的代码 open(r'D ...

  2. python3 eval安全替代函数ast.literal_eval

    一.eval函数 eval()官方文档里面给出来的功能解释是:将字符串string对象转化为有效的表达式参与求值运算返回计算结果. 示例: >>> s='8*8' >>& ...

  3. ast.literal_eval(转)

    eval函数在Python中做数据类型的转换还是很有用的.它的作用就是把数据还原成它本身或者是能够转化成的数据类型.那么eval和ast.literal_val()的区别是什么呢?本文将大家介绍关于P ...

  4. python3 eval安全替代函数ast.literal_eval的区别

    python3 eval安全替代函数ast.literal_eval 一.eval函数 eval()官方文档里面给出来的功能解释是:将字符串string对象转化为有效的表达式参与求值运算返回计算结果. ...

  5. python查询mysql decimal报错_python读取MySQL数据表时,使用ast模块转换decimal格式数据的坑...

    概述 MySQL中常用的数据格式有tinyint().int().float().double().decimal() .varchar.enum().datetime;小数格式中decimal比较常 ...

  6. python利用xlrd模块读取xls表格选中某列提取全部数值,使用re去除英文字母,用ast将str类型转换成list

    python利用xlrd模块读取xls表格选中某列提取全部数值,使用re去除英文字母,用ast将str类型转换成list import ast # 获取xls表中的代码并去重 import xlrd ...

  7. Python 将字符串转为字典

    引言 在工作中遇到一个小问题,需要将一个 Python 的字符串转为字典,比如字符串: user_info = '{"name" : "john", " ...

  8. python 字符串 转 dict

    比直接eval更好的方法>>>import ast >>>ast.literal_eval("{'muffin' : 'lolz', 'foo' : 'k ...

  9. python将string转换为json_python -- 将string转换成dict的方法

    装载自:http://smilejay.com/2014/10/convert_string_to_dict_python/ 我将数据库连接相关的一些用户名/密码/host/port等各种东西作为一个 ...

最新文章

  1. (chap1 网络基础知识)通信类型
  2. bean交个spring和new比较区别
  3. linux wheel用户组,Linux的用户和组之详解用户和组的分类
  4. Python识别验证码,基于Tesseract实现图片文字识别
  5. Netty工作笔记0060---Netty心跳机制实例
  6. 教你如何监控 Apache?
  7. django-pure-pagination
  8. linux正则表达式_【开发者成长】5 分钟搞定 Linux 正则表达式
  9. 20-2.系统启动和内核管理centos7(unit,systemctl,grub2-)
  10. 小任务之使用SVG画柱状图~
  11. Go语言--编程哲学
  12. FFmpeg —— Linux下使用ffmpeg硬件cuda解码mp4,并加入简单cv处理,sdl渲染窗口(附源码)
  13. udp端口转发 Linux,Linux iptables 端口转发
  14. 在Excel如何根据内容自动调整行高列宽
  15. MySQL 8 复制(一)——异步复制
  16. 加入云上江湖—蚂蚁 SOFAStack
  17. win10安装mmcv和mmcv-full报错
  18. 搭建MPI并行计算环境并计算pi值[windows 和 Ubuntu]
  19. php制作日历带节日实验目的,php制作日历
  20. 使用腾讯IM实现uni-app小程序中的客服聊天

热门文章

  1. Python 实用冷门知识整理
  2. 19道Python练习题
  3. python 命令行参数—argparse模块的使用
  4. oracle备份片校验,oracle rman 备份日志单独备份和交叉校验
  5. OpenCV saturate_cast<uchar>函数用法(饱和剔除)(像素限制、溢出滤除、像素设限、防溢出)
  6. JavaScript学习笔记(7)PC端网页特效(略)
  7. Python__数据结构与算法——图
  8. 黑马程序员pink老师前端入门教程,零基础必看的h5(html5)+css3+移动端前端视频教程(CSS字体,文本)
  9. python.exe在哪个文件_pythonexe文件中的images文件夹放在哪里?
  10. spring-boot-starter-parent 作用