当前位置: 首页 > news >正文

Python 内置函数eval()

Python 内置函数eval()

在这里插入图片描述

eval(expression, globals=None, locals=None) 函数用来执行一个字符串表达式,并返回表达式的值。

  • expression: 字符串表达式。
  • global: 可选,globals必须是一个字典。
  • locals: 可选,locals可以是任何映射对象。

示例

>>> x = 1
>>> eval('x + 1')
2>>> eval('pow(2, 3)')
8>>> eval('[1, 2, 3]')
[1, 2, 3]>>> eval('{"name": "白子画", "age": 1000}')
{'name': '白子画', 'age': 1000}

将Json字符串转为Python字典

>>> msg = '{"name": "白子画", "married": false, "spouse": null}'
>>> eval(msg)
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "<string>", line 1, in <module>
NameError: name 'false' is not defined

由于Json中的布尔类型、空类型与Python中的不一致,所以直接用eval(expression)将会报错。

有两种方法可以解决:

  • 方法一:转换之前先定义好无法识别的类型。

    >>> false = False
    >>> null = None
    >>> msg = '{"name": "白子画", "married": false, "spouse": null}'
    >>> eval(msg)
    {'name': '白子画', 'married': False, 'spouse': None}
  • 方法二:转换时携带定义无法识别类型的字典。

    >>> msg = '{"name": "白子画", "married": false, "spouse": null}'
    >>> eval(msg, {'false': False, "null": None})
    {'name': '白子画', 'married': False, 'spouse': None}
http://www.lryc.cn/news/21180.html

相关文章:

  • 【ArcGIS Pro二次开发】系列学习笔记,持续更新,记得收藏
  • EasyRecovery16MAC苹果版本Photo最新版数据恢复软件
  • Go的string与strings.Builder
  • 8.Spring Security 权限控制
  • curl / python+selenium爬取网页信息
  • 晶体塑性有限元 Abaqus 三维泰森多边形(voronoi模型)插件 V7.0
  • CPython解释器性能分析与优化
  • Linux 进程:理解进程和pcb
  • 银行数字化转型导师坚鹏:招商银行数字化转型战略研究
  • java 一文讲透面向对象 (20万字博文)
  • 使用file-selector-button美化原生文件上传
  • 0402换元积分法-不定积分
  • 信号类型(雷达)——脉冲雷达(三)
  • 并查集(13张图解)--擒贼先擒王
  • Flutter3引用原生播放器-IOS(Swift)篇
  • 【蓝桥杯每日一题】双指针算法
  • 拼数(一般贪心)
  • LeetCode 热题 C++ 169. 多数元素 10. 正则表达式匹配 155. 最小栈
  • Clickhouse学习:MergeTree
  • 【java基础】包装类,自动装箱和自动拆箱
  • Android笔记(二十五):两种sdk热更插件资源加载方案
  • spring框架--全面详解(学习笔记)
  • 2023年CDGA考试模拟题库(401-500)
  • 软件设计师备考文档
  • Javascript的API基本内容(一)
  • 10、最小公倍数
  • 【vue】vue2.x项目中使用md文件
  • 操作系统权限提升(十三)之绕过UAC提权-MSF和CS绕过UAC提权
  • 快速排序+快速定位
  • nginx http rewrite module 详解