【问题标题】:Passing and Receiving data from Python Script从 Python 脚本传递和接收数据
【发布时间】:2020-11-24 18:21:39
【问题描述】:

我想从我的 node-express 应用程序运行一个 python 脚本(当一个端点被命中时)。 我想将请求的主体作为命令行参数(或者如果有任何其他方式)传递给 python 脚本。

我还希望将脚本返回的数据作为响应返回。

谁能帮助我有效地实现这一目标。

【问题讨论】:

    标签: python node.js express command-line-arguments


    【解决方案1】:

    您好
    您可以在 nodejs 代码中使用“child_process”包并运行您的 python 脚本并与之通信 那是你的python代码

    # hello.py
    
    import random, time
    while True:
        time.sleep(random.random() * 5)  # wait 0 to 5 seconds
        text = "Hello number " + (random.random() * 100)
        print(text, flush=True, end='')
    

    这将是你的 js 代码

    const { spawn } = require('child_process');
    const messages = []; // Store readings
    
    const sensor = spawn('python', ['hello.py']);
    sensor.stdout.on('data', function(data) {
        messages.push(parseFloat(data));
    
        // Log to debug
        console.log(messages);
    });
    

    如果您想将参数传递给您的 Python 源代码,请执行此操作

    const myList = ["foo", "bar", "baz"];
    const { spawn } = require("child_process");
    const python = spawn('python',["script.py", JSON.stringify(myList)]);
    

    这就是你的 Python 代码

    # script.py
    
    import sys, json
    if __name__ == '__main__':
        my_list = json.loads(sys.argv[1])
    

    【讨论】:

    • 是的,我明白了你所说的,但我的主要问题是如何通过节点将参数(主要是 JavaScript 对象)传递给该 python 代码。
    • 是的。知道了。谢谢老兄。
    猜你喜欢
    • 1970-01-01
    • 2011-06-04
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    相关资源
    最近更新 更多