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的多线程基础

    2021-12-07 18:50:50
  • asp和php下textarea提交大量数据发生丢失的解决方法

    2023-10-26 09:01:43
  • pycharm 中mark directory as exclude的用法详解

    2021-02-27 05:24:07
  • 详解Python各大聊天系统的屏蔽脏话功能原理

    2021-02-23 13:53:44
  • ASP处理多关键词查询实例代码

    2008-11-21 17:36:00
  • Python元素集合的列表切片

    2023-08-08 23:08:57
  • 详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法

    2021-04-13 08:17:01
  • Python中如何优雅的合并两个字典(dict)方法示例

    2023-08-02 16:15:25
  • python光学仿真学习wxpython创建手速测试程序

    2023-12-06 20:57:28
  • 简单介绍Python中的struct模块

    2023-09-22 16:27:01
  • python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能

    2021-12-29 06:55:13
  • Python Pandas中缺失值NaN的判断,删除及替换

    2021-08-27 22:10:23
  • Python判断变量是否为Json格式的字符串示例

    2023-11-12 04:48:29
  • pandas DataFrame的修改方法(值、列、索引)

    2021-10-17 11:35:10
  • 一文教会你用Python获取网页指定内容

    2023-01-01 09:15:05
  • Python 变量类型详解

    2022-06-23 00:44:55
  • 三个520专属Python表白代码分享

    2023-09-19 21:20:06
  • oracle数据库sql的优化总结

    2024-01-23 16:05:11
  • tensorflow2.0如何实现cnn的图像识别

    2022-05-01 21:19:58
  • Mysql视图和触发器使用过程

    2024-01-15 22:15:46
  • asp之家 网络编程 m.aspxhome.com