python调用js代码比较好用的方法是使用第三方库pyexecjs,这个库可以用python运行JavaScript代码。
实现方式:
在本地 JS 环境下运行 JS 代码
PS:支持的 JS 环境包含:Node.js、PyV8、PhantomJS、Nashorn 等
1.安装依赖包 PyExecJS
//py_exec_js_demo.py //安装依赖 pip3 install PyExecJS
2.从 JS 文件中读取源码
def js_from_file(file_name): """ 读取js文件 :return: """ with open(file_name, 'r', encoding='UTF-8') as file: result = file.read() return result
3.使用 execjs 类的compile()方法编译加载上面的 JS 字符串,返回一个上下文对象
import execjs from js_code import * # 编译加载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编码后再返回。
function a(str) { return new Buffer(str).toString("base64"); }