Компания, в которой я работаю, создала Webapp, разделенную на модули в c # asp.net, для некоторых вещей я работаю там программистом, а также специалистом по данным, я сделала много отчетов на python с пандами и экспортировано в Excel, чтобы передать их моему боссу, но теперь они спрашивают меня, могу ли я интегрировать все эти отчеты в один новый модуль для веб-приложения компании, чтобы они могли видеть их в Интернете вместо файлов Excel.
У меня вопрос: могу ли я создать простой контроллер / представление и в контроллере вызвать файл python, который я создал для отчета, и вернуться к представлению фрейма данных pandas, а затем присвоить ему стиль?
Пока я прочитал, я нашел, как выполнить файл python из контроллера c #, но я не нашел ничего о возврате фрейма данных.
Код, который я получил прямо сейчас:
Контроллер:
public ActionResult Home()
{
string python = RunPython.runPython(AppDomain.CurrentDomain.BaseDirectory + @"\Python\Hello.py", "hola");
ViewBag.Python = python;
return View();
}
Класс, в котором я призываю к выполнению файла python:
public class RunPython
{
public static string runPython(string cmd, string args)
{
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)+@"\Programs\Python\Python37\python.exe";
start.Arguments = string.Format("\"{0}\" \"{1}\"", cmd, args);
start.UseShellExecute = false;
start.CreateNoWindow = true;
start.RedirectStandardOutput = true;
start.RedirectStandardError = true;
using (Process process = Process.Start(start))
{
using (StreamReader reader = process.StandardOutput)
{
string stderr = process.StandardError.ReadToEnd();
string result = reader.ReadToEnd();
return result;
}
}
}
}
Результат, который я получаю от звонка, выглядит примерно так:
names ages 0 manoel 24 1 anthony 24
и я теперь это, конечно, потому что я возвращаю строку из класса, но я пробовал другие типы переменных, и ничего не работает.
Я бы хотел, чтобы результат был что-то вроде
id | Names | Ages
0 | Manoel | 24
1 | Anthony | 25
или как массив, чтобы я мог перебрать и поместить его в таблицу в представлении.
у кого-нибудь есть идеи?