Send csv file from node js to python file

18 views Asked by At

I got a xlsx file which the user uploads in my application. The application is made in react.js. The code then converts the xlsx file to csv. Then sends that file to the python code

import React, { useState } from 'react';
import * as XLSX from 'xlsx';

const XlsxToCsvConverter = () => {
  const [csvData, setCsvData] = useState('');

  const handleFileChange = (event) => {
    const file = event.target.files[0];

    if (file) {
      const reader = new FileReader();
      reader.onload = (e) => {
        const workbook = XLSX.read(e.target.result, { type: 'binary' });
        const csvData = XLSX.utils.sheet_to_csv(workbook.Sheets[workbook.SheetNames[0]]);
        setCsvData(csvData);
      };
      reader.readAsBinaryString(file);
    }
  };

  return (
    <div>
      <h2>XLSX to CSV Converter</h2>
      <input type="file" onChange={handleFileChange} />
      {csvData && (
        <div>
          <h3>Converted CSV Data:</h3>
          <pre>{csvData}</pre>
        </div>
      )}
    </div>
  );
};

export default XlsxToCsvConverter;

And a python file which encodings the data in the csv.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.preprocessing import LabelEncoder
data=pd.read_csv('/content/drive/MyDrive/MTO.csv')
print(data['SERVICE'].unique())
print(data['SIZE 1'].unique())
print(data['SIZE 2'].unique())
print(data['ITEM'].unique())
data_encoded = data.copy()

# Label encoding for categorical columns
label_encoder_service = LabelEncoder()
data_encoded['SERVICE'] = label_encoder_service.fit_transform(data['SERVICE'])

label_encoder_size1 = LabelEncoder()
data_encoded['SIZE 1'] = label_encoder_size1.fit_transform(data['SIZE 1'])

label_encoder_size2 = LabelEncoder()
data_encoded['SIZE 2'] = label_encoder_size2.fit_transform(data['SIZE 2'].astype(str))

label_encoder_item = LabelEncoder()
data_encoded['ITEM'] = label_encoder_item.fit_transform(data['ITEM'])

data_encoded.columns = data_encoded.columns.str.strip()
# Grouping by encoded columns and summing the quantities
result = data_encoded.groupby(['SERVICE', 'SIZE 1', 'SIZE 2', 'ITEM'])['QTY'].sum().reset_index()

for index, row in result.iterrows():
    print(f"{index+1}\t|{label_encoder_service.inverse_transform([row['SERVICE']])[0]}|\t"
          f"{label_encoder_size1.inverse_transform([row['SIZE 1']])[0]}|\t"
          f"{label_encoder_size2.inverse_transform([row['SIZE 2']])[0]}|\t"
          f"{label_encoder_item.inverse_transform([row['ITEM']])[0]}\t->\t"
          f"{row['QTY']}")

How do u send the CSV file to python script.

Tried nothing.Saw some video on spawn but understood nothing.

0

There are 0 answers