在JS中调试无误,但在Python中用execjs.compile调用JS中的函数会报以下错误:
AttributeError: 'NoneType' object has no attribute 'replace'
解决方案:
引入subprocess模块
import subprocess
from functools import partial
subprocess.Popen = partial(subprocess.Popen, encoding='utf-8')
import execjs
get_data = execjs.compile(open('KKK.js',encoding='utf-8').read()).call('encrypted',api,data)
subprocess.Popen:是调用系统的接口来创建指定的进程以完成预期的任务,如图所示是将接下来的编码方式默认为utf-8。
partial() 函数:给一个或多个参数设置固定的值,减少接下来被调用时的参数个数。