Python eval()函数和ast.literal_eval()的区别你知道吗

作者:jq_98 时间:2022-06-26 14:37:55 

eval()函数可以将字符串型的list、tuple、dict等等转换为原有的数据类型

Python eval()函数和ast.literal_eval()的区别你知道吗

即使用eval可以实现从元组,列表,字典型的字符串到元组,列表,字典的转化,此外,eval还可以对字符串型的输入直接计算

Python eval()函数和ast.literal_eval()的区别你知道吗


从上面来看,eval功能可谓是非常强大,即可以做string与list、tuple、dict之间的类型转换,还可以做计算器使用,但是eval强大的背后有着巨大的安全隐患,比如,用户恶意输入下面的字符串,是十分危险的

Python eval()函数和ast.literal_eval()的区别你知道吗


所以这里因为安全处理方式 ast.literal_eval(), 该函数会判断需要计算的内容计算后是不是合法的python类型,如果是则进行运算,否则就不进行运算比如上面的计算操作和危险操作,使用ast.literal_eval()都会拒绝执行,报错

Python eval()函数和ast.literal_eval()的区别你知道吗

Python eval()函数和ast.literal_eval()的区别你知道吗

ast.literal_eval()只会执行合法的Python类型,从而大大降低系统的风险性

Python eval()函数和ast.literal_eval()的区别你知道吗

来源:https://blog.csdn.net/jq_98/article/details/122737830

标签:Python,eval(),ast.literal,eval(),函数
0
投稿

猜你喜欢

  • python标准库之time模块的语法与简单使用

    2023-06-11 17:42:23
  • 在ASP中使用SQL语句之5:开始执行

    2007-08-11 12:36:00
  • css基础教程属性篇

    2008-07-23 12:44:00
  • python批量读取txt文件为DataFrame的方法

    2021-09-29 12:04:21
  • superLink,让伪链接更有可用性

    2009-06-02 12:35:00
  • JavaScript常用的返回,自动跳转,刷新,关闭语句汇总

    2023-10-21 10:37:27
  • 一个比较完美的spacer div技巧

    2009-03-18 19:29:00
  • python用BeautifulSoup库简单爬虫实例分析

    2022-04-02 21:42:00
  • 为MySQL提权简单方法

    2009-08-29 15:21:00
  • 一种有创意的CSS命名规则

    2008-06-15 15:18:00
  • Python中的面向对象编程详解(上)

    2021-10-12 14:33:45
  • Python快速实现一键抠图功能的全过程

    2021-03-03 14:58:39
  • ASP程序员面试题

    2011-09-15 20:51:20
  • 瀑布流布局代码一例

    2023-08-25 07:33:19
  • 防止网站内容被人小偷和采集的ASP代码

    2007-10-02 13:04:00
  • Python图形绘制操作之正弦曲线实现方法分析

    2023-07-05 11:18:59
  • 解析:轻松掌握 字符串文字字符集和校对

    2008-12-17 17:07:00
  • python 字典 setdefault()和get()方法比较详解

    2022-12-11 01:28:41
  • php 时间计算问题小结

    2023-11-03 14:37:06
  • ASP如何输出字符

    2007-09-22 18:41:00
  • asp之家 网络编程 m.aspxhome.com