Excel 喜欢 Python 最终用户的脚本语言
Excel like scripting language in Python for end users
我正在寻找一种方法让最终用户处理来自用户界面的一些数据。语法类似于 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)
如果你想要更人性化的东西,也许你可以试试 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
我正在寻找一种方法让最终用户处理来自用户界面的一些数据。语法类似于 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)
如果你想要更人性化的东西,也许你可以试试 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