【问题标题】:How to read javascript values from python with PyV8如何使用 PyV8 从 python 读取 javascript 值
【发布时间】:2013-05-11 19:57:18
【问题描述】:

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

main-js.js:

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

如何使用 PyV8 将每个变量读入 Python?到目前为止,我已经打开并阅读了这个文件: ctxt.eval(open("main-js.js").read())。但我不知道如何从文件中获取每个变量。由于缺少 pyv8 的文档,这很难找到

【问题讨论】:

    标签: javascript python api v8


    【解决方案1】:

    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 中有一个返回值的函数怎么办。例如: function getStr(){ return "hello" } 如何调用函数并使用 pyv8 提取返回值
    • 没关系。我想通了 :) 非常感谢
    猜你喜欢
    • 2021-12-17
    • 2016-10-20
    • 2021-06-22
    • 1970-01-01
    • 2016-11-26
    • 2015-04-22
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    相关资源
    最近更新 更多