运维自动化 - 如何用外部读取的文件内容来确定python函数的执行顺序以及参数?
问题描述
现在做一套服务器上程序的自动工具,有启停、调整的各种操作。但是不同节点上的部署内容都不仅相同,假设现在已经做好了各种功能的python函数。然后通过读取外部信息,比如一个json数据,来确定这些函数的运行顺序与参数,能否提一下如何实现?比如有 功能函数1(参数1,参数2) 功能函数2(参数1,参数2,参数3) 功能函数3(参数1) 三种业务函数。然后我读取一个{{{’funcname’:’功能函数2’},{’parameter’:[para1,para2,para3]}},{{’funcname’:’功能函数1’},{’parameter’:[para1,para2]}}}然后程序就会按照函数2,函数1的顺序,并读取其中的parameter参数执行这一系列动作。(其实作为自动化工具,肯定需要及时反馈信息,再执行完每个函数之后还会读取返回信息,如果出错就会立即中断程序,并且上报信息或者记录日志,所以也就是说每执行完一个功能函数,还会执行一个简单判断返回结果的程序)
这里需要注意的是,要执行几个功能函数是不确定的,顺序也是不确定的。我直接想到的是的最笨的办法是,遍历外部json文件,然后读出funcname,来判断执行哪个函数。但感觉这种方式,后期拓展性、维护起来都比较麻烦。希望能讨论一下
问题解答
回答1:使用eval可以将字符串当作代码来执行,并返回结果:
def func1(a,b): return a+bs = eval('func1(1,2)')print(s)# 3
用一个循环,遍历Json文件的所有items
将函数名和参数,转换为字符串。
eval执行字符串
处理返回值
相关文章:
1. css3 - 微信前端页面遇到的transition过渡动画的bug2. 网页爬虫 - 关于Python的编码与解码问题3. javascript - Webapp 关闭后重新打开无需登录如何操作?4. php - 微信开发验证服务器有效性5. javascript - jquery选择的dom元素如何更新?6. javascript - vue.js 在使用期间遇到ios9.3.2不兼容问题7. javascript - js输入框限定字数问题8. javascript - Ajax返回json格式之后的数据解析后取出来的数据为undefined?9. css - 文字排版问题,内容都是动态抓出来的,字数不一定。如何对齐啊10. Browser-sync安装失败问题

网公网安备