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函数的主要内容,如果未能解决你的问题,请参考以下文章

eval()函数的作用是啥?

eval函数和isNaN函数

eval函数

29.eval函数

python之eval函数,map函数,zip函数

Eval函数