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))
  • 相关阅读:
    AdminLTE组件之表格DataTable
    爬虫:通过滑动或者点触验证码的方法及实现(点触+滑动)
    爬虫:滑动验证解决方法及python实现
    django文件上传地址以及media的设置
    基于cropper和sweetalert的简单图片/头像裁剪上传
    学写网站(二)前端配置之glup
    轩辕剑陆和外传平台版设置功能
    植物大战僵尸
    仙剑类更新
    VSCode注册关联自定义类型文件
  • 原文地址:https://www.cnblogs.com/shenjianping/p/11460836.html
Copyright © 2011-2022 走看看