1

我已经在 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 文档,这很难找到

4

1 回答 1

3

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]")
于 2013-05-16T19:31:24.510 回答