我已经将PyV8实现为Python。我有一个示例javascript文件,如下所示:
var numOne = 1+2;
var numTwo = 3+1;
var numThree = 5;
如何使用PyV8将每个变量读入Python?到目前为止,我打开并阅读了这个文件: ctxt.eval(开放( “主js.js”)。阅读())。但我不知道如何从文件中获取每个变量。由于缺乏pyv8
的文档,很难找到答案 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]")