Сделать запрос на элемент статистического обучающего набора данных в формате Json (C #)

#json

#json

Вопрос:

Пожалуйста, я хочу сделать запрос для этого набора данных https://web.stanford.edu /~hastie/ElemStatLearn/наборы данных / простата.данные и получите их в формате json. Но когда я его запускаю, я получаю эту ошибку «Неожиданный символ, встречающийся при анализе значения: l. Path «, строка 1, позиция 1.». Ниже приведен код, который я написал с использованием C#

 public class Prostate
{
    public string lcavol { get; set; }
    public string lweight { get; set; }
    public string age { get; set; }
    public string lbph { get; set; }
    public string svi { get; set; }
    public string lcp { get; set; }
    public string gleason { get; set; }
    public string pgg45 { get; set; }
    public string lpsa { get; set; }
    public string train { get; set; }
    
}

    public async Task<Prostate> Data()
    {
        HttpClient client = new HttpClient();

        var resp = await client.GetAsync("https://web.stanford.edu/~hastie/ElemStatLearn/datasets/prostate.data");
        var repsStr = await resp.Content.ReadAsStringAsync();
        var newdata = JsonConvert.DeserializeObject(repsStr);
        Prostate somedata = (Prostate) newdata;
        return somedata;
    }
  

Ответ №1:

Я сохранил файл в формате txt и открыл его в Excel. Позже я сохранил его как csv, а затем прочитал его, используя этот код

     public async Task<List<Prostate>> Files()
    {
        List<Prostate> prostates = new List<Prostate>();
        var file = Path.Combine(Directory.GetCurrentDirectory(), "[path to file]");

        string[] linesofdata = await System.IO.File.ReadAllLinesAsync(file);

        foreach(string line in linesofdata){
            string[] linewords = line.Split(',');
            Prostate newprostate = new Prostate();
            newprostate.lcavol = linewords[0];
            newprostate.lweight = linewords[1];
            newprostate.age = linewords[2];
            newprostate.lbph = linewords[3];
            newprostate.svi = linewords[4];
            newprostate.lcp = linewords[5];
            newprostate.gleason = linewords[6];
            newprostate.pgg45 = linewords[7];
            newprostate.lpsa = linewords[8];
            newprostate.train = linewords[9];

            prostates.Add(newprostate);
        }

        return prostates.ToList();
    }