eval函数
Posted shenjianping
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了eval函数相关的知识,希望对你有一定的参考价值。
一、eval函数的定义
1、定义
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
2、语法
eval(expression[, globals[, locals]])
expression : 表达式。
globals : 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
locals : 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
3、实例
>>> eval(‘2*4‘) 8 >>> eval(‘pow(2,2)‘) 4 >>> eval(‘2+5‘) 7 >>>
二、字符串转成列表
>>> l1="[1,2,3,4,5]" >>> type(l1) <class ‘str‘> >>> l2=eval(l1) >>> type(l2) <class ‘list‘> >>>
三、字符串转成字典
>>> d1=‘name‘:‘bright‘,‘age‘:12 >>> d1="‘name‘:‘bright‘,‘age‘:12" >>> type(d1) <class ‘str‘> >>> d2=eval(d1) >>> type(d2) <class ‘dict‘> >>> d2 ‘age‘: 12, ‘name‘: ‘bright‘ >>>
四、字符串转成元祖
>>> t1="(1,2,3,4)" >>> type(t1) <class ‘str‘> >>> t2=eval(t1) >>> type(t2) <class ‘tuple‘> >>>
五、字节转成字典
redis数据库中可以存储多种数据类型,但是如果想使用redis存储字典类型的数据呢?像如下形式:
‘/crm/dept‘: [‘get‘], ‘/crm/menus‘: [‘get‘], ‘/rbac/roles‘: [‘get‘], ‘/rbac/roles/(?P<roleId>\\d+)/permission$‘: [‘put‘], ‘/rbac/rights/list‘: [‘get‘], ‘/rbac/roles/(?P<roleId>\\d+)/permission/(?P<permissionId>\\d+)$‘: [‘delete‘], ‘/crm/user‘: [‘get‘, ‘post‘]
此时可以将字典当成字符串来进行存储:
#自己定义key值,字典当成value值
r.set(key,value)
但是使用get取值时,取出的时bytes类型的值,此时可以使用eval函数,将bytes类型转成字典类型
dict = eval(r.get(key))
以上是关于eval函数的主要内容,如果未能解决你的问题,请参考以下文章