Как из node.js по http запросам передавать данные в python файл?

Пользователь

от vicenta_kertzmann , в категории: Другие , 2 месяца назад

Как из node.js по http запросам передавать данные в python файл?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от caterina , 2 месяца назад

@vicenta_kertzmann 

Есть несколько способов передачи данных из Node.js в Python файл по HTTP запросам:

  1. Запустить Python скрипт как отдельный процесс и передавать данные через аргументы командной строки или путем записи в стандартный ввод и чтения из стандартного вывода. Например: В Node.js: const { spawn } = require('child_process'); // Запустить Python скрипт const pythonProcess = spawn('python', ['path/to/script.py', 'arg1', 'arg2', ...]); // Отправить данные в стандартный ввод Python скрипта pythonProcess.stdin.write(JSON.stringify(data)); pythonProcess.stdin.end(); // Получить результат из стандартного вывода Python скрипта pythonProcess.stdout.on('data', (data) => { const result = data.toString(); console.log(result); }); В Python: import sys import json # Прочитать данные из стандартного ввода data = json.loads(sys.stdin.read()) # Обработать данные result = ... # Вывести результат в стандартный вывод sys.stdout.write(json.dumps(result)) sys.stdout.flush()
  2. Использовать HTTP клиент внутри Python для отправки запросов на Node.js сервер. Например, вы можете использовать библиотеку requests для этого. В Node.js вам нужно будет создать HTTP сервер и обрабатывать запросы. Например: В Node.js: const http = require('http'); const server = http.createServer((req, res) => { let body = ''; req.on('data', (chunk) => { body += chunk; }); req.on('end', () => { const data = JSON.parse(body); // Обработать данные const result = ... res.end(JSON.stringify(result)); }); }); server.listen(3000); console.log('Server listening on port 3000'); В Python: import requests import json # Отправить HTTP запрос на Node.js сервер response = requests.post('http://localhost:3000', json=data) # Получить результат из ответа result = response.json() print(result)
  3. Использовать библиотеку axios в Node.js и Flask в Python для обработки HTTP запросов. Например: В Node.js с использованием axios: const axios = require('axios'); // Отправить HTTP запрос на Python сервер axios.post('http://localhost:5000', data) .then((response) => { const result = response.data; console.log(result); }) .catch((error) => { console.error(error); }); В Python с использованием Flask: from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/', methods=['POST']) def process_data(): data = request.get_json() # Обработать данные result = ... return jsonify(result) if __name__ == '__main__': app.run(port=5000)


Выберите наиболее подходящий способ в зависимости от ваших конкретных потребностей и окружения.