从Python调用外部JavaScript函数

4 投票
2 回答
4818 浏览
提问于 2025-04-16 17:43

我有一个JavaScript函数,可以用输入来调用,并返回一个结果。这个JavaScript函数可以集成到一个HTML文档中(当然可以)。

现在我想从Python中调用这个JavaScript函数。我有一个Python程序,想通过调用的Python函数把输入参数传给JavaScript函数,然后让这个JavaScript函数把结果返回给Python。

这个JavaScript函数功能比较复杂,也是在一个网页项目中使用的。我希望在Python中也能使用相同的功能。

有没有人知道怎么解决这个问题?Python的内容很庞大,所以我觉得我可能只是没有找到合适的Python模块。我已经花了两天时间在寻找解决方案。

谢谢!

2 个回答

1

我最近也遇到了类似的需求,最后是通过node来解决的。

parser.js

module.exports = {decode};  // entry for node

function decode(payload) {
  var decoded = {};
  // ...
  console.log(JSON.stringify(decoded));
  return decoded;
}

终端

node -e 'require("./parser.js").decode("foobar")'

输出:解析后的数据

caller.py

import subprocess

cmd = """node -e 'require(\"./parser.js\").decode(\"{}\")'"""
output = subprocess.check_output(cmd.format(data), shell=True)
3

pyv8 让你可以在 Python 中使用 V8 JavaScript 引擎。

如果你要用的 JavaScript 函数依赖于一些不是核心 JavaScript 的东西(比如 DOM),那么你需要找到这些东西的实现。

撰写回答