如何使用PyV8从python读取javascript值

如何使用PyV8从python读取javascript值,javascript,python,api,v8,Javascript,Python,Api,V8,我已经在Python中实现了PyV8。我有一个示例javascript文件,如下所示: main-js.js: 如何使用PyV8将每个变量读入Python?到目前为止,我已经打开并阅读了以下文件: eval(打开(“main js.js”).read()。但我不知道如何从文件中获取每个变量。由于缺少pyv8的文档,JSContext对象有一个locals属性,该属性是上下文局部变量的字典,因此很难找到。因此,您需要ctxt.locals[“numOne”]等等 另一种方法是:eval()有一个返

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

main-js.js: 如何使用PyV8将每个变量读入Python?到目前为止,我已经打开并阅读了以下文件:
eval(打开(“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]")

很快,再来一个。如果我的javascript中有一个返回值的函数呢。例如:函数getStr(){return“hello”}如何调用函数并使用pyv8NEVERMIND提取返回值。我想出来了:)非常感谢
with PyV8.JSContext() as ctxt:
    with open("main-js.js") as jsfile:
        ctxt.eval(jsfile.read())
    numOne, numTwo, numThree = ctxt.eval("[numOne, numTwo, numThree]")