Python调用JS代码的方法大全

 更新时间:2025年05月30日 10:34:15   作者:失败又激情的man  
这篇文章主要为大家详细介绍了Python调用JavaScript代码的三种常用代码,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

一.pyexecjs的使用

PyExecJS 是一个 Python 库,用于在 Python 环境中执行 JavaScript 代码。它实际上是对 ExecJS 库的 Python 封装,ExecJS 本身是一个通用的 JavaScript 运行环境的抽象层。使用 PyExecJS,你可以在 Python 中执行 JavaScript 代码,而无需启动一个完整的 JavaScript 解释器。它的目标是提供一种简便的方式,使得在 Python 中嵌入 JavaScript 代码成为可能,特别是对于需要JavaScript 交互的项目而言。

安装方式:

pip install PyExecJS  -i  https://pypi.tuna.tsinghua.edu.cn/simple/

基本使用方法

(注:导入不需要py,下载要py)

import execjs  # 导入
# 生成JavaScript运行环境,环境名可以指定
node = execjs.get()  # 安装nodejs后,会得到运行环境名为:Node.js (V8)
with open('1.js', encoding='utf-8') as f:
    js_code = f.read()
    print(js_code)
# 编译js代码
ctx = node.compile(js_code)  # compile方法去加载js代码
 
# 两种方式执行js函数
data1 = ctx.eval('get_data({"aa": "123"})')  # eval方法中,整个函数调用包含在字符串内
print(data1)
data2 = ctx.call('get_data', ['123'])  # call方法中,第一个参数是函数名(str),后面接参数
print(data2)

js代码

function get_data(aa){
 
 
    return aa
}

输出

以上方法只针对非异步的js代码

二.subprocess调用异步JS

在 Python 中,subprocess 模块用于创建和管理子进程。可以通过端口调用JS代码

本质是通过端口调用js代码注意路径,python代码如下:

import subprocess
# 使用 subprocess 模块执行 Node.js 命令
result = subprocess.run(["node", "1.js", "daochu",  "7", "5"], capture_output=True, text=True)
# 输出执行结果
print(f"Node.js 执行结果: {result.stdout.strip()}")

JS代码(注意是输出console.log,而不是返回return)

function getAsyncData() {
    return new Promise(function (resolve, reject) {
        resolve(123)
    });
}
getAsyncData().then(
    function (data){
        console.log(data)
    }
)

输出结果

三.express异步接口调用

简单来说,Express 是基于 Node.js 平台,快速、开放、极简的 Web 开发框架。

下载:

npm install express -S

基本用法

// 1.导入 express
const express = require('express');
 
// 2.创建 web 服务器
const app = express();
 
// 3.get请求 req是请求对象  res响应对象
app.get('/user', function(req, res){
    // 调用express提供的res.send()方法,向客户端响应一个JSON对象
    res.send('hello world')
})
// 4.启动 web 服务器
app.listen(8080, function(){
    console.log('express server running at http://127.0.0.1:8080/user');
})

响应返回的结果

所以简单来说如果是异步js代码

 
// 1.导入 express
const express = require('express');
// 2.创建 web 服务器
const app = express();
function getAsyncData(){
    return new Promise(function (resolve, reject) {
            resolve('hello world');
    });
}
// 3.get请求 req是请求对象  res响应对象
app.get('/user', function(req, res){
    // 调用express提供的res.send()方法,向客户端响应一个JSON对象
    getAsyncData().then(function(data){
    res.send(data);
});
})
// 4.启动 web 服务器
app.listen(8080, function(){
    console.log(" http://127.0.0.1:8080/user/")
    console.log('express server running at http://127.0.0.1:8080');
})

然后在本地请求http://127.0.0.1:8080/user/

import requests
url = "http://127.0.0.1:8080/user/"
response = requests.get(url)
print(response.text)
print(response)

结果如下,也是顺利调用了

到此这篇关于Python调用JS代码的方法大全的文章就介绍到这了,更多相关Python调用JS代码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python 简单的调用有道翻译

    python 简单的调用有道翻译

    这篇文章主要介绍了python 如何简单的调用有道翻译,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-11-11
  • 详解python数据结构之栈stack

    详解python数据结构之栈stack

    这篇文章主要介绍了详解python数据结构之栈stack,文中有非常详细的代码示例,对正在学习python的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • Python Bytes压缩新手速成

    Python Bytes压缩新手速成

    掌握Python Bytes压缩的秘诀,让你的数据轻装上阵!本指南将带你一探Bytes压缩的奥秘,告别臃肿的数据,快来发现如何让你的代码和应用在性能高速公路上驰骋吧!
    2023-12-12
  • python实现简单的单变量线性回归方法

    python实现简单的单变量线性回归方法

    今天小编就为大家分享一篇python实现简单的单变量线性回归方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Python实现的数据结构与算法之双端队列详解

    Python实现的数据结构与算法之双端队列详解

    这篇文章主要介绍了Python实现的数据结构与算法之双端队列,详细讲述了双端队列的概念、功能、定义及Python实现与使用双端队列的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • Python+PyQt5开发一个截图工具

    Python+PyQt5开发一个截图工具

    这篇文章主要为大家详细介绍了如何使用Python和PyQt5开发一个截图工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-12-12
  • 详解Python进阶之切片的误区与高级用法

    详解Python进阶之切片的误区与高级用法

    切片(slice)就是一种截取索引片段的技术,借助切片技术,我们可以十分灵活地处理序列类型的对象。这篇文章主要介绍了Python进阶之切片的误区与高级用法,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • 详解Python中openpyxl模块基本用法

    详解Python中openpyxl模块基本用法

    这篇文章主要介绍了Python中openpyxl模块基本用法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Python Anaconda创建虚拟环境及Pycharm使用虚拟环境详解

    Python Anaconda创建虚拟环境及Pycharm使用虚拟环境详解

    文章介绍了如何使用Anaconda创建和管理Python虚拟环境,并如何在Pycharm中使用这些环境,这包括创建、激活、退出、删除、克隆和重命名虚拟环境的命令,以及如何查看和管理已安装的Python包,此外,还涉及了如何在Pycharm中配置和使用这些虚拟环境
    2025-10-10
  • pytorch训练时的显存占用递增的问题解决

    pytorch训练时的显存占用递增的问题解决

    本文主要介绍了pytorch训练时的显存占用递增的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01

最新评论