2017-07-26 108 views
0

我正在寻找一种方式,让最终用户处理来自用户界面的一些数据。一个语法类似于Excel的脚本引擎可以。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', ''))

,或者如果用户想通过20%的提价,如果产品价格是低则10:

set('product_price', if(product_price < 10, product_price*1.20, product_price)

+3

也许...... Python的? –

+0

@ddofborg:你能提供一些限制吗?基本上:为什么*不*只是让最终用户编写Python代码? –

+0

也许关于应用程序是关于什么,脚本应该做什么以及使用什么类型的用户的一些额外细节应该会让我们更好地了解如何更好地帮助您。 –

回答

1

如果你想要的东西更方便用户,也许你可以尝试Blockly: https://developers.google.com/blockly/

您可以轻松地将其与你的应用集成和定制,打造自己的块,以满足您的用户的需求。

你也可能想看看网: 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

+1

我认为SimpleEval(https://github.com/danthedeckie/simpleeval)会完成这项工作! – ddofborg