0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

eval和ast.literal_eavl区别

jf_78858299 来源:梯阅线条 作者:小梯子 2023-02-23 14:52 次阅读

1 eval

1.1 字符串型数据还原本身类型

python中,eval可以将字符串型的list,tuple,dict转变成原有的类型。

即,eval可以把数据还原成它本身或者是能够转化成的数据类型。

//string 转 list
 >>> str_list='[1,2,3,4]'
 >>> eva_list=eval(str_list)
 >>> str_list;eva_list
 '[1,2,3,4]'
 [1, 2, 3, 4]
 >>> type(str_list);type(eva_list)
 <type 'str'>
 <type 'list'>
//string 转 tuple
 >>> str_tuple='(1,2,3)'
 >>> eval_tuple=eval(str_tuple)
 >>> str_tuple;eval_tuple
 '(1,2,3)'
 (1, 2, 3)
 >>> type(str_tuple);type(eval_tuple)
 <type 'str'>
 <type 'tuple'>
//string 转 dict
 >>> str_dict="{'name':'nihao'}"
 >>> eval_dict=eval(str_dict)
 >>> str_dict;eval_dict
 "{'name':'nihao'}"
 {'name': 'nihao'}
 >>> type(str_dict);type(eval_dict)
 <type 'str'>
 <type 'dict'>

1.2 字符串型数据进行运算

>>> ret=eval(raw_input('请输入字符串:'))
 请输入字符串:1+1
 >>> ret
 2

1.3 字符串型语句命令

只要eval能解析的字符串,都会当做合法的表达式或命令执行,而不顾可能带来的后果。

>>> open(r'E://filename.txt','r').read
 >>> __import__('os').system('dir')
 >>> __import__('os').system('rm -rf /etc/*')

eval强大的背后,是巨大的安全隐患。比如上面的删除文件。

所以,才有了ast.literal_eval。

2 literal_eval

ast.literal_eval(),先判断执行的内容是不是合适的python类型,如果是则执行,否则就不执行。

这样可以大大降低系统的危险性,所以,对字符串进行类型转换的时候,最好是用ast.literal_eval()函数。

2.1 合适数据类型

# 合适数据类型
 >>> ast.literal_eval('[1,2,3]')
 [1, 2, 3]
 >>> ast.literal_eval('(1,2,3)')
 (1, 2, 3)
 >>> ast.literal_eval("{'name':'nihao'}")
 {'name': 'nihao'}

2.2 不合适数据类型

# 不合适数据类型
 >>> ast.literal_eval('1+1')
 
 Traceback (most recent call last):
   File "
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7203

    浏览量

    89854
  • python
    +关注

    关注

    56

    文章

    4811

    浏览量

    85119
  • EVAL
    +关注

    关注

    0

    文章

    34

    浏览量

    8552
收藏 人收藏

    评论

    相关推荐

    请问EVAL-ADISZ和EVAL-ADIS2有哪些区别

    尊敬的工程师你好,我现在想评估16735和16488A的性能并验证我的算法,请问EVAL-ADISZ和EVAL-ADIS2的区别除了后者需要单独分线板外,还有哪些区别,例如在传输速度、
    发表于 08-08 09:39

    AST3TQ评估板旨在促进AST3TQ系列TCXO和VCTCXO的电气性能测试

    AST3TQ-EVALAST3TQ评估板旨在促进AST3TQ系列TCXO和VCTCXO的电气性能测试。客户只需在所提供的焊盘图形上焊接AST3TQ器件,并将+ 3.3V连接到标记为V
    发表于 07-17 08:57

    babel插件入门之AST

    babel插件入门-AST
    发表于 05-20 13:41

    AST-1401型VGA彩色显示器电源电路图

    AST-1401型VGA彩色显示器电源电路图
    发表于 05-15 18:20 786次阅读
    <b class='flag-5'>AST</b>-1401型VGA彩色显示器电源电路图

    AST-4型彩色显示器电源电路图

    AST-4型彩色显示器电源电路图
    发表于 05-15 22:20 436次阅读
    <b class='flag-5'>AST</b>-4型彩色显示器电源电路图

    AST GM-6型SVGA彩色显示器电源电路图

    AST GM-6型SVGA彩色显示器的电源电路图
    发表于 05-15 22:24 569次阅读
    <b class='flag-5'>AST</b> GM-6型SVGA彩色显示器电源电路图

    AST MPX-2型彩色显示器电源电路图

    AST MPX-2型彩色显示器的电源电路图
    发表于 05-15 22:26 477次阅读
    <b class='flag-5'>AST</b> MPX-2型彩色显示器电源电路图

    AST4700 Multi-Feature

    AST4700 Mu
    发表于 01-09 21:06 7次下载

    ASMT-JR30-AST01 3W迷你大功率LED

    电子发烧友网为你提供Broadcom(ti)ASMT-JR30-AST01相关产品参数、数据手册,更有ASMT-JR30-AST01的引脚图、接线图、封装手册、中文资料、英文资料,ASMT-JR30-AST01真值表,ASMT-
    发表于 07-04 11:24
    ASMT-JR30-<b class='flag-5'>AST</b>01 3W迷你大功率LED

    ASMT-AR30-AST00 3W大功率LED

    电子发烧友网为你提供Broadcom(ti)ASMT-AR30-AST00相关产品参数、数据手册,更有ASMT-AR30-AST00的引脚图、接线图、封装手册、中文资料、英文资料,ASMT-AR30-AST00真值表,ASMT-
    发表于 07-04 11:20
    ASMT-AR30-<b class='flag-5'>AST</b>00 3W大功率LED

    ASMT-AR00-AST00 1W大功率LED

    电子发烧友网为你提供Broadcom(ti)ASMT-AR00-AST00相关产品参数、数据手册,更有ASMT-AR00-AST00的引脚图、接线图、封装手册、中文资料、英文资料,ASMT-AR00-AST00真值表,ASMT-
    发表于 07-04 10:35
    ASMT-AR00-<b class='flag-5'>AST</b>00 1W大功率LED

    ASMT-AR00-AST01 1W大功率LED

    电子发烧友网为你提供Broadcom(ti)ASMT-AR00-AST01相关产品参数、数据手册,更有ASMT-AR00-AST01的引脚图、接线图、封装手册、中文资料、英文资料,ASMT-AR00-AST01真值表,ASMT-
    发表于 07-04 10:35
    ASMT-AR00-<b class='flag-5'>AST</b>01 1W大功率LED

    ASMT-JR10-AST01 1W迷你大功率LED

    电子发烧友网为你提供Broadcom(ti)ASMT-JR10-AST01相关产品参数、数据手册,更有ASMT-JR10-AST01的引脚图、接线图、封装手册、中文资料、英文资料,ASMT-JR10-AST01真值表,ASMT-
    发表于 07-04 10:32
    ASMT-JR10-<b class='flag-5'>AST</b>01 1W迷你大功率LED

    基于AST3TQ-EVAL晶体振荡器的参考设计

    View the reference design for AST3TQ-EVAL. http://www.elecfans.com/soft/ has thousands of reference designs to help bring your project to life.
    发表于 07-01 17:52 12次下载
    基于<b class='flag-5'>AST3TQ-EVAL</b>晶体振荡器的参考设计

    张飞电源---AST英文资料

    张飞电源---AST英文资料(照明电源哪家好)-张飞电源---AST英文资料  供有兴趣的可以参考下
    发表于 07-26 14:18 7次下载
    张飞电源---<b class='flag-5'>AST</b>英文资料