Geschrieben von

Quick Tipp: Python-Skript über Node.js ausführen und Daten übermitteln

WebDev

Oft hat man den Fall, dass eine Applikation auf Node.js basiert, jedoch eine API nur Python-Libraries zur Verfügung stellt. In diesem Fall musst du über Node.js ein Python-Skript ausführen und Daten zwischen beiden Techniken übermitteln. In Node.js erzielt man dies über Child-Prozesse. Genauer gesagt über das child_ process-Modul. Nachfolgend ein einfaches Beispiel.

Gehen wir davon aus wir haben ein Python-Skript, welches Daten von einer API abfragt. Im nachfolgenden Beispiel wird dies über ein einfaches Objekt simuliert:

import json

response = {
    "Response": 200,
    "Message": "This is the data from the python script",
    "Data": "Example"
}

print(json.dumps(response))

Über die print-Methode wird das Ergebnis ausgegeben. Nun können wir unsere Node.js-Logik bauen. Dabei benutzen wir eine Methode namens “child_process.spawn()”. Diese erzeugt den Prozess asynchron, ohne die Node.js-Ereignisschleife zu blockieren. Hier das Beispiel:

const spawn = require('child_process').spawn;

const pythonProcess = spawn('python3', ['python.py']);

pythonProcess.stdout.on('data', (data) => {

    console.log(data.toString());

});