gpt4 book ai didi

javascript - 将数据帧从 python 发送到 node.js 应用程序

转载 作者:行者123 更新时间:2023-11-29 21:00:19 25 4
gpt4 key购买 nike

我正在使用 python-shell 以便在 Node 应用程序和 python 脚本之间进行通信首先,我向 python 脚本发送一个变量。基于它我创建了一个数据框。然后我想将生成的数据帧发送回 node.js 应用程序,最后将其显示在页面上。所以问题是,虽然它在控制台中打印了整个数据框,但它只呈现了网页上的最后一行。这里我包含代码

node.js 代码:

            var pyvar = data["Search"][0]["imdbID"]
console.log(pyvar)

var pyshell = new PythonShell('script3.py');

pyshell.send(JSON.stringify(pyvar))

pyshell.on('message', function (message) {
jsondata = message
console.log(message);
});

pyshell.end(function (err) {
if (err){
throw err;
};

console.log('finished');
});

app.get("/data", function(req, res) {
res.render("data", {data: jsondata} )
})

EJS:

<h1> Table </h1>


<%=data%>

python脚本3.py

import sys, json
import pandas as pd


def read_in():
lines = sys.stdin.readlines()
return json.loads(lines[0])

def main():
lines = read_in()
array1=[1,2,3,4,5]
array2=["a","b","c","d","e"]

df=pd.DataFrame({"onecolumn": lines,
"second":array1,
"third": array2
})

print (df)

if __name__ == '__main__':
main()

在控制台中我得到:

onecolumn  second third
0 pyvar 1 a
1 pyvar 2 b
2 pyvar 3 c
3 pyvar 4 d
4 pyvar 5 e
finished

然而/data 显示:

Table

4 pyvar 5 e

最佳答案

pyshell.on('message', function(message){}) 部分是问题所在。每次收到消息时,它都会用收到的值替换 jsondata。很有可能是逐行从python程序接收数据。

相反,您将想要连接从 pyshell 获得的任何内容。

var jsonData = ""
pyshell.on("messsage", function(message){
jsonData += message;
});

pyshell.end(function(err){
console.log(jsonData);
});

关于javascript - 将数据帧从 python 发送到 node.js 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46818711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com