安全的嵌入式python表达式解析器

embexpr的Python项目详细描述


盗用图片::https://travis-ci.org/orisano/embexpr.svg?branch=master
:目标:https://travis ci.org/orisano/embexpr

安全的嵌入式python表达式解析器(主要用于简单的dsl或配置文件)。

代码::bash

pip install embexpr



从embexpr import-expr中,parseerror




assert expr('3*5’)==15
assert expr('“foo”+“bar”“)=”foobar“
assert expr('len(“示例”))==7
assert expr('s.startswith('prefix“)”)(s=“prefix_后缀”)==true


try:
>expr('eval('1“)))))

除了parseerror为15
assert expr('foo“+”foo”+”bar“+”bar““E:
打印(E)



reference
----
https://github.com/ansible/ansible/blob/devel/lib/ansible/template/safe-eval.py
http://stackoverflow.com/questions/12523516/使用AST和白名单使pythons eval安全

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将字符串(Cookie)保存到SharedPrefs导致NullPointerException   java帧缓冲区无法存储浮点数   使用部分密钥进行java AES256解密   java重定向主页中的所有页面   java在JTextArea中递增整数的值   java为什么不能将数据持久化到数据库中   java使用jar库,使用更高版本的javac编译   Java8使用文件修改文件。线   java在反转二维数组时遇到问题?   java在解析流式XML数据时遇到异常   SpringJava8项目RESTDocs未能创建目录   java@ManyToOne accross架构创建错误的FK   java分块编码与HttpServletResponse outputStream上的写入?   java翻新+OkHttp在发送GET请求时可以,但在发送POST时提供SocketTimeout