zoukankan      html  css  js  c++  java
  • 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))
  • 相关阅读:
    各种排序算法的时间复杂度和空间复杂度
    fork/join框架
    全文检索之solr学习
    【设计模式最终总结】概述、分类、原则
    ASP.NET MVC5+EF6+EasyUI 后台管理系统(75)-微信公众平台开发-用户管理
    下拉列表自己封装的
    下拉列表
    一个原生的JavaScript拖动方法
    JavaScript的jsonp
    angular2 的依赖注入
  • 原文地址:https://www.cnblogs.com/shenjianping/p/11460836.html
Copyright © 2011-2022 走看看