Каков путь к файлу `csv`

Я пытаюсь повторить это, но ReaderBuilder::new().from_path вместо csv::Reader::from_reader

Итак, я написал свой код, как показано ниже:

extern crate csv;
extern crate serde;

#[macro_use]
extern crate serde_derive;

use std::error::Error;
use std::io;
use std::process;
use csv::ReaderBuilder;


#[derive(Debug, Deserialize)]
#[serde(rename_all = "PascalCase")]
struct Record {
    latitude: f64,
    longitude: f64,
    population: Option<u64>,
    city: String,
    state: String,
}
const DATA: &'static str = include_str!("../data/uspop.csv");
fn run() -> Result<(), Box<Error>> {
      let mut rdr = ReaderBuilder::new().from_path(DATA);

        for result in rdr.records() {
        let record = result?;
        println!("{:?}", record);
    }
  /* let mut rdr = csv::Reader::from_reader(io::stdin());
    for result in rdr.deserialize() {
        let record: Record = result?;
        println!("{:?}", record);
        // Try this if you don't like each record smushed on one line:
        // println!("{:#?}", record);
    } */
    Ok(())
}

fn main() {
    if let Err(err) = run() {
        println!("{}", err);
        process::exit(1);
    }
}

Но я получил следующую ошибку, из которой я понимаю, что приложение не видит мой CSV-файл:

rror [E0599]: метод не указан records найдено по типу std::result::Result<csv::Reader<std::fs::File>, csv::Error> в текущем объеме -> src/main.rs:26:27 | 26 | для результата в rdr.records() { | ^^^^^^^

Я пытался поставить свой uspop.csv файл в 3 местах, но, похоже, ни один из них не работает:

1 / В корне, рядом с Cargo.toml2/ В источнике, рядом main.rs3/ В отдельной папке root/data/uspop.csv

Но никто не видел, какую ошибку я здесь делаю!

0 ответов

Другие вопросы по тегам