我正在寻找让终端用户从用户界面处理一些数据的方法。脚本引擎的语法类似于Excel。
示例:
输入为dict
,其中包含数据(基本上是脚本的变量名称)和带有规则的string
。
input = {'a':1, 'b':2, 'c':'add'}
rule_example_1 = "if(c == 'add',a+b,if(c=='sub',a-b,raise ERROR))"'
rule_example_2 = "if c == 'add' return a+b else if c == 'sub' return a-b else raise error()"
脚本必须可以使用自己的功能进行扩展。也可能是用户可以使用的某些类型定义。
使用案例
用户基本上在其帐户中有一些二维数据(产品详细信息)。使用一些脚本规则,我想让他们更改产品数据。
例如,如果用户想要排除以字母X
开头的所有商品,他们会创建一条规则:
set('product_status', if(starts_with(product_title,'X'), 'skip', ''))
如果产品价格低于10,则用户想要将价格提高20%
set('product_price', if(product_price < 10, product_price*1.20, product_price)
答案 0 :(得分:1)
如果你想要更方便用户的东西,也许你可以试试Blockly: https://developers.google.com/blockly/
您可以轻松地将其与您的应用程序集成并进行自定义,创建自己的块以满足用户的需求。
您可能还想看一下Mesh: https://github.com/chrispsn/mesh
或许更简单的事情: https://pypi.python.org/pypi/simpleeval
或者,甚至更简单(但不太安全),您可以使用ast.literal_eval()
;这个是Python标准库的一部分:
https://docs.python.org/3/library/ast.html#ast.literal_eval
此另一个问题可能对您有所帮助: Safe expression parser in Python