python调用js代码比较好用的方法是使用第三方库pyexecjs,这个库可以用python运行JavaScript代码。
实现方式:在本地 JS 环境下运行 JS 代码PS:支持的 JS 环境包含:Node.js、PyV8、PhantomJS、Nashorn 等1.安装依赖包 PyExecJS
//py_exec_js_demo.py //安装依赖 pip3installPyExecJS
2.从 JS 文件中读取源码
defjs_from_file(file_name): """ 读取js文件 :return: """ withopen(file_name,'r',encoding='UTF-8')asfile: result=file.read() returnresult
3.使用 execjs 类的compile()方法编译加载上面的 JS 字符串,返回一个上下文对象
importexecjs fromjs_codeimport* #编译加载js字符串 context1=execjs.compile(js_from_file('./norm.js'))
4.调用上下文对象的call() 方法执行 JS方法其中参数包含:JS 代码被调的方法名、对应方法的传入参数
#调用js代码中的add()方法,参数为2和3 #方法名:add #参数:2和3 result1=context1.call("add",2,3) print(result1)
需要注意:js代码返回的字符串如果有特殊字符的话可能会出错。解决方法:先将字符串进行base64编码后再返回。
functiona(str){ returnnewBuffer(str).toString("base64"); }