节点js调用的Python脚本给出了空的数据框

时间:2020-04-05 00:43:08

标签: python node.js pandas dataframe child-process

我正在调用节点js中的python脚本,该脚本会根据用户搜索返回一组提示。但是,运行node js文件时得到的输出是-

WSU3N1GU8 Empty DataFrame Columns: [name, id, number] Index: []

但是,输出也在终端中被打印出来,只是我无法在节点中接收过滤的数据帧。我试图将其转换为字符串,然后发送输出,但它似乎不起作用。我不确定为什么它发送一个空的数据框。这是我的python代码:

nested = json.loads(r.text)
nested_full = json_normalize(nested)
req_data= json_normalize(nested,record_path ='items')
search = req_data.get(["name", "id", "number"])
filter = sys.argv[1:]
input = filter[0]
print(input)
result = search[search["name"].str.contains(input)]
response = '```' + repr(result) + '```'
print(response)
sys.stdout.flush()

这是调用python脚本的节点js代码。我希望能够在节点中以字符串形式接收输出,然后将其传递给另一个函数-

const processData = async function(userText,result,res) {
    const childProcess = require("child_process").spawn('python', ['./search.py', userText], {stdio: 'inherit'})
    childProcess.on('data', (data) => {
        console.log(`stdout: ${data}`);

        console.log(data.toString());
        const result = res.write(data);
        res.end('end');
        callback(result);

0 个答案:

没有答案