python运行js语句的方法
小编给大家分享一下python运行js语句的方法,相信大部分人都还不怎么了解,因此分享这边文章给大家学习,希望大家阅读完这篇文章后大所收获,下面让我们一起去学习方法吧!
1. 安装
pipinstallPyExecJS#需要注意,包的名称:PyExecJS
2. 简单使用
importexecjsexecjs.eval("newDate")返回值为:2018-04-04T12:53:17.759Zexecjs.eval("Date.now()")返回值为:1522847001080#需要注意的是返回值是13位,区别于python的time.time()
需要注意的是: 个别的JS语句, 用execjs返回的结果跟浏览器环境返回的结果是有区别的, 以下是浏览器环境返回的结果:
3. 调用函数
#实际生产中处理的js有几百几千行,不方便贴上来。来看一下源码中给的例子:ctx=execjs.compile("""functionadd(x,y){returnx+y;}""")ctx.call("add",1,2)#第一个参数“add”为JS函数名的字符串,后边依次为实参返回值:3
execjs的用法非常简单, 下边来看一下执行JS的环境, 以及性能:
4. 执行JS的环境
在windows上不需要其他的依赖便可运行execjs, 也可以调用其他的JS环境
windows默认的执行JS的环境execjs.get().name返回值:JScript作者本人的windows上装有Node.js,所以返回值不同execjs.get().name返回值:Node.js(V8)
在ubuntu下需要安装执行JS环境依赖, 作者的环境为PhantomJS
execjs.get().name返回值:PhantomJS
源码中给出, 可执行execjs的环境:
PyV8="PyV8"Node="Node"JavaScriptCore="JavaScriptCore"SpiderMonkey="SpiderMonkey"JScript="JScript"PhantomJS="PhantomJS"SlimerJS="SlimerJS"Nashorn="Nashorn"
在ubuntu环境下,没有JS环境会报错:Could not find an available JavaScript runtime. 由此可见,execjs在ubuntu需要安装JS环境 。具体的JS环境需根据具体的需求安装, 切不可超过以上8种。
5.环境切换
通过os.environ
os.environ["EXECJS_RUNTIME"]="Node"execjs.get().nameexecjs.eval("1+2")
通过execjs.get 切换
jscript=execjs.get(execjs.runtime_names.JScript)#runtime_names便是execjs源码中给出的执行环境的。execjs.runtime_names.xxxxxx必须在上一节#3中取jscript.eval("1+2")
注: 在切换环境时, 当环境不存在不会报错, 会使用默认的环境。 另外需要注意的是, 两种方式的区别
6. 简易性能分析
#只简单试了三种,在windows下importexecjsimportosimporttime#先用JScriptos.environ["EXECJS_RUNTIME"]="JScript"printexecjs.get().nametime1=time.time()foriinrange(100):execjs.eval("newDate")printtime.time()-time1#切换环境使用Nodejsos.environ["EXECJS_RUNTIME"]="Node"printexecjs.get().nametime2=time.time()forlinrange(100):execjs.eval("newDate")printtime.time()-time2#打印的结果为:JScript4.70900011063Node.js(V8)27.501999855#在ubuntu下试的是PhantoJS,结果竟然高达30+S
以上是python运行js语句的方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。