我已经在 Python 中实现了 PyV8。我有一个示例 javascript 文件,如下所示:
主要js.js:
var numOne = 1+2;
var numTwo = 3+1;
var numThree = 5;
如何使用 PyV8 将每个变量读入 Python?到目前为止,我已经打开并阅读了这个文件:ctxt.eval(open("main-js.js").read())。但我不知道如何从文件中获取每个变量。由于缺少 pyv8 文档,这很难找到
我已经在 Python 中实现了 PyV8。我有一个示例 javascript 文件,如下所示:
var numOne = 1+2;
var numTwo = 3+1;
var numThree = 5;
如何使用 PyV8 将每个变量读入 Python?到目前为止,我已经打开并阅读了这个文件:ctxt.eval(open("main-js.js").read())。但我不知道如何从文件中获取每个变量。由于缺少 pyv8 文档,这很难找到
该JSContext
对象有一个locals
属性,它是上下文局部变量的字典。所以,你想要ctxt.locals["numOne"]
等等。
另一种方法是:eval()
有一个返回值,它是最后一个被评估的语句的值。因此,您还可以执行一个 JavaScript 语句来评估您感兴趣的变量。在这种情况下,您可以创建一个它们的 JavaScript 数组,然后您可以将其解压缩到您想要的 Python 变量中。您可以通过将语句附加到从文件中读取的代码中来做到这一点,或者只eval()
为它执行一个单独的语句:
with PyV8.JSContext() as ctxt:
with open("main-js.js") as jsfile:
ctxt.eval(jsfile.read())
numOne, numTwo, numThree = ctxt.eval("[numOne, numTwo, numThree]")