Как сохранить python вывод, полученный в node js? - PullRequest
0 голосов
/ 04 апреля 2020

Я вызываю python скрипт из node js. Сценарий python извлекает данные из REST API и сохраняет их в кадре данных, а затем выполняет функцию поиска на основе пользовательского ввода. Я не понимаю, какой тип переменной python отправляет данные в node js в? Я пытался преобразовать в строку, но в node js говорится, что это неразрешенный тип переменной. Вот код:

r = requests.get(url)
data = r.json()
nested = json.loads(r.text)
nested_full = json_normalize(nested)
req_data= json_normalize(nested,record_path ='items')
search = req_data.get(["name", "id"," ])
#search.head(10)



filter = sys.argv[1:]
print(filter)
input = filter[0]
print(input)
result = search[search["requestor_name"].str.contains(input)]
result = result.to_String(index=false)
response = '```' + str(result) + '```'
print(response)
sys.stdout.flush()

Вот программа node js, которая вызывает вышеуказанный сценарий python. Как сохранить выходные данные в формате, который я могу передать другой функции в узле?

var input = 'robert';
var childProcess = require("child_process").spawn('python', ['./search.py', input], {stdio: 'inherit'})
const stream = require('stream');
const format = require('string-format')


childProcess.on('data', function(data){
    process.stdout.write("python script output",data)

    result += String(data);
    console.log("Here it is", data);

});
childProcess.on('close', function(code) {
        if ( code === 1 ){
            process.stderr.write("error occured",code);

            process.exit(1);
        }
        else{
            process.stdout.write('done');

        }
    });

1 Ответ

0 голосов
/ 04 апреля 2020

Согласно документам :

childProcess.stdout.on('data', (data) => {
  console.log(`stdout: ${data}`);
});
...