Python中eval()函数的功能及使用方法(python中eval是什么函数)

网友投稿 366 2022-08-28


Python中eval()函数的功能及使用方法(python中eval是什么函数)

eval(str)函数很强大,官方解释为:将字符串str当成有效的表达式来求值并返回计算结果。所以,结合math当成一个计算器很好用。

eval()函数常见作用有:

1、计算字符串中有效的表达式,并返回结果

>>> eval('pow(2,2)')4>>> eval('2 + 2')4>>> eval("n + 4")85

2、将字符串转成相应的对象(如list、tuple、dict和string之间的转换)

将python内存中的数据类型转成其该有的数据类型,而不是json字符串

>>> a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]">>> b = eval(a)>>> b[[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]>>> a = "{1:'xx',2:'yy'}">>> c = eval(a)>>> c{1: 'xx', 2: 'yy'}>>> a = "(1,2,3,4)">>> d = eval(a)>>> d(1, 2, 3, 4)

例外:json格式的字典字符串如果键值对中的值为单字节的话可以使用eval()表达式转换为python数据类型【例如json转dict】

①但是如果json格式的字典字符串中的键值对中的值为复杂的数据类型如列表或者列表中嵌套字典则无法将json转换为dict数据

②eval(str)当字符串中有null【null的反序列化通过json.load()方法可以转换为None】值,无法将字符串转成相应的对象,会报错。

json_string = """{ "answerList": [ { "content": "string", "questionId": "string", "questionIndex": 0, "questionTitle": "string", "questionType": 0, "questionWeight": 0, "score": 0, "scoreId": "string", "scoreName": "string", "scoreWeight": 0, "selectOptions": [ { "disabledWeight": true, "evaluateStatus": 0, "optionId": "string", "optionTitle": "string", "optionWeight": 0 } ], "tags": [ { "tagId": "string", "tagTitle": "string" } ] } ], "channel": "string", "externalUnionid": "string", "key": "string", "qaJson": "string", "unionid": "string", "uuid": "string"}"""print(json_string) #打印json字符串print(type(json_string))#打印json字符串的类型:strprint(eval(json_string))使用eval()表达式把json字符串转换为python数据类型:字典类型--》结果失败,报错json_dict = json.loads(json_string) #使用json.loads反序列化方式,将json字符串转换为python数据类型成功print(type(json_dict)) #打印转换后的数据类型:dictprint(json_dict)#打印转换成功后的字典数据

3、将利用反引号转换的字符串再反转回对象

>>> list1 = [1,2,3,4,5]>>> `list1`'[1, 2, 3, 4, 5]'>>> type(`list1`)>>> type(eval(`list1`))>>> a = eval(`list1`)>>> a[1, 2, 3, 4, 5]

去期待陌生,去拥抱惊喜。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python字典的常用方法总结(python字典的操作方法)
下一篇:Java if
相关文章

 发表评论

暂时没有评论,来抢沙发吧~