如何使用PyV8从python中读取javascript值

时间:2013-05-16 19:17:10

标签: javascript python api v8

我已经将PyV8实现为Python。我有一个示例javascript文件,如下所示:

主js.js:

var numOne = 1+2;
var numTwo = 3+1;
var numThree = 5;

如何使用PyV8将每个变量读入Python?到目前为止,我打开并阅读了这个文件: ctxt.eval(开放( “主js.js”)。阅读())。但我不知道如何从文件中获取每个变量。由于缺乏pyv8

的文档,很难找到

1 个答案:

答案 0 :(得分: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]")